Php 在laravel 5.4中,Hasone返回null
在我的交易模式中,我有:Php 在laravel 5.4中,Hasone返回null,php,laravel,relationship,Php,Laravel,Relationship,在我的交易模式中,我有: public function order() { return $this->hasOne('Model\Interaction\Order'); } 我想拿到交易的订单 Transaction::where('id', 1)->with('order')->get(); 但秩序是空的。在transactions表中,我有order\u id 我做错了什么 谢谢如果您这样定义关系,您应该在订单表中有交易id 由于您在交易表中有订单id,因
public function order()
{
return $this->hasOne('Model\Interaction\Order');
}
我想拿到交易的订单
Transaction::where('id', 1)->with('order')->get();
但秩序是空的。在transactions
表中,我有order\u id
我做错了什么
谢谢如果您这样定义关系,您应该在
订单
表中有交易id
由于您在交易
表中有订单id
,因此关系应为:
由于order_id在interactions表上,所以您应该使用belongsTo而不是hasOne,在我的例子中,问题是子表,即我认为有一个关系的关系实际上有多个具有相同值的条目。Eloquent不会为您选择具有匹配ID和切片1的所有关系。 所以,如果你说
public function foo ()
return $this->hasOne(Bar::class, 'this_class_id');
}
确保
Bar
的表列此\u class\u id
确实是唯一的,否则您将继续获得空结果此路径Model\Interaction\Order
正确吗?@SagarGautam是的
public function foo ()
return $this->hasOne(Bar::class, 'this_class_id');
}