繁体   English   中英

Hasone在Laravel 5.4中返回null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM