问题是我需要从集合中提取集合。我已经设置了模型和数据库,因此这些关系起作用:
用户可以进行多次谈判
谈判有一个RiderNegotiation
但是我无法执行此查询:
$user->negotiations->riderNegotiation
如果我只是通过$ user->谈判然后解析谈判,我认为我可以在我的视图文件中解决这个问题。我发现我不能这样使用isEmpty()。
@if($negotiations->riderNegotiation->isEmpty()
Laravel是否有某种漂亮的技巧来进行这种关系查询?我觉得这是一个普遍的问题。
答案 0 :(得分:0)
hasMany返回元素集合,您无法在集合上调用hasOne。 你应该能够做到:
$negociations = User::find(1)->negotiations;
@foreach($negociations as $negociation)
echo get_class($negociation->riderNegotiation); //riderNegotiation
@endforeach
答案 1 :(得分:-2)
$negotiations = User::find(Auth::user()->id)->negotiations;
$temp = array();
foreach($negotiations as $negotiation ) {
$temp = array_merge($temp,$negotiaton->riderNegotiation->toArray());
};
资源有点贵但是$ temp应该包含该用户的所有骑手谈判。