查询集合中的一对一关系

时间:2014-01-16 14:45:14

标签: laravel laravel-4 eloquent

问题是我需要从集合中提取集合。我已经设置了模型和数据库,因此这些关系起作用:

用户可以进行多次谈判

谈判有一个RiderNegotiation

但是我无法执行此查询:

$user->negotiations->riderNegotiation

如果我只是通过$ user->谈判然后解析谈判,我认为我可以在我的视图文件中解决这个问题。我发现我不能这样使用isEmpty()。

@if($negotiations->riderNegotiation->isEmpty()

Laravel是否有某种漂亮的技巧来进行这种关系查询?我觉得这是一个普遍的问题。

2 个答案:

答案 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应该包含该用户的所有骑手谈判。