Laravel Eloquent hasMany 和 BelongsToMany 不返回使用 with
题
我正在尝试执行一个查询来获取 order
和 card
充电,但出现错误。
卡片型号:
class Card extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function user()
{
return $this->belongsTo('User');
}
public function orders()
{
return $this->hasMany('Order');
}
}
订购型号:
class Order extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function user()
{
return $this->belongsTo('User');
}
public function card()
{
return $this->hasOne('Card');
}
public function address()
{
return $this->belongsTo('Address');
}
public function orderItems()
{
return $this->hasMany('OrderItem');
}
}
我想找回的:
$order = Order::with('card')->find($id);
这显然行不通,我已经尝试了几种组合。我认为问题出在我的模型/关系上。
知道如何使用卡/令牌详细信息取回订单吗?
数据库信息:每个订单只能有一个 card_id
并且每张卡可以有多个顺序。没有 order_id
在卡中。
订单表基本上:
id | card_id
卡牌表:
id | token
试图获得 token
col 返回 Order
.
解决方案
在你的 Order
模型,您需要更改此:
public function card()
{
return $this->hasOne('Card');
}
对此:
public function card()
{
return $this->belongsTo('Card');
}
原因是您正在定义的逆 hasMany
关系。随着 belongsTo
关系,Eloquent 会寻找一个 card_id
列于 orders
桌子。
不隶属于 StackOverflow