繁体   English   中英

Laravel 5.4从集合中获取关系

[英]Laravel 5.4 get relations from collection

这是修补的结果 在此处输入图片说明 我有下一个关于关系的雄辩查询,我想做的是从集合中获取“请求”数组,这可能吗?

$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();

您可以进行以下操作:

$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;});

那么关于solicitud关系,像$requests->solicitud不会起作用,因为关系是单一模式,而不是它的集合。 所以,如果你想中检索solicitud ,需要迭代上$requests 您可能需要从查询中删除-> groupBy()

例如:

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

要么

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

这将具有一组非唯一“请求”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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