Laravel 5.4从收集中获取关系

时间:2018-04-03 17:06:15

标签: php laravel laravel-5

这是修补匠的结果 enter image description here我有下一个雄辩的关系问题,我想要做的就是得到“关注”。来自集合的数组,有可能吗?

$requests = Request_conversation::with(['solicitud', 'solicitud.reservation', 'solicitud.detail.subDetails'])->
                where('readed', '=', 0)
                ->whereHas('solicitud', function($q)use($user){
                    $q->where('idUsuario','=', $user);
                })
                ->skip($inicio)
                ->take($elementos)
                ->groupBy('solicitud')
                ->orderBy('created_at', 'DESC')->get();

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式:

$requests = Request_conversation::with(['solicitud', 'solicitud.reservation', 'solicitud.detail.subDetails'])->
            where('readed', '=', 0)
            ->whereHas('solicitud', function($q)use($user){
                $q->where('idUsuario','=', $user);
            })
            ->skip($inicio)
            ->take($elementos)
            ->groupBy('solicitud')
            ->orderBy('created_at', 'DESC')->get()->map(function($items){
              return $items->solicitud;});

答案 1 :(得分:0)

关于solicitud关系,像$requests->solicitud这样的东西不会起作用,因为关系是在单个模型上,而不是它的集合。 因此,如果您想要检索solicitud,则需要对$requests进行迭代。 您可能需要从查询中删除 - > groupBy()

例如:

$solicituds = [];
foreach ($requests as $rq) { 
 $solicituds[] = $rq->solicitud;
}

或者

$solicituds = $requests->pluck('solicitud');

这将有一系列非独特"关注"。