我正在尝试执行单个查询以取回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
返回Order
col。
答案 0 :(得分:1)
在Order
模型中,您需要更改此内容:
public function card()
{
return $this->hasOne('Card');
}
到此:
public function card()
{
return $this->belongsTo('Card');
}
原因是您正在定义hasMany
关系的倒数。使用belongsTo
关系,Eloquent将在card_id
表格中查找orders
列。