[英]Hasone returns null in laravel 5.4
我处于交易模式:
public function order()
{
return $this->hasOne('Model\Interaction\Order');
}
我想通过交易获得订单,
Transaction::where('id', 1)->with('order')->get();
但订单为空。 在transactions
表中,我有order_id
。
我究竟做错了什么?
谢谢
如果您定义这样的关系,则在orders
表中应该有transaction_id
。
由于您在transactions
表中有order_id
,因此关系应为belongsTo()
:
public function order()
{
return $this->belongsTo('Model\Interaction\Order');
}
由于order_id位于交互表上,因此应使用belongsTo而不是hasOne
在我的情况下,问题在于子表(即我认为具有一个关系的表)实际上具有多个具有相同值的条目。 Eloquent不会为您选择具有匹配ID和slice 1的所有关系。 所以,如果你说
public function foo ()
return $this->hasOne(Bar::class, 'this_class_id');
}
确保Bar
的表列this_class_id
确实是唯一的,否则您将获得空结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.