Laravel 筛选 'with' 结果
Laravel filtering the 'with' results
我正在制作一个包含如下查询的网络应用程序:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews'
])->find($id);
我想做的是按照以下方式添加一些内容:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews' -> where('user_id', '=', Auth::user()->id)
])->find($id);
所以我想获取属于该条目的评论,其中评论的 user_id 也与当前登录的用户匹配。有办法吗?
你也可以试试这个代码..
$entry = Entry::select('elements', 'competition.groups.fields', 'competition.groups.reviews')->where('user_id', '=', Auth::user()->id)->get();
此代码将获取属于当前登录用户的 Entries
集合。
如果没有条目 Entries
集合计数将为零。如果存在一些条目,那么您可以遍历集合并获取条目属性。
您可以只添加一个闭包来过滤 with
结果:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews' => function($q){
$q->where('user_id', '=', Auth::id()); // Replaced Auth::user()->id with a shortcut: Auth::id()
}
])->find($id);
我正在制作一个包含如下查询的网络应用程序:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews'
])->find($id);
我想做的是按照以下方式添加一些内容:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews' -> where('user_id', '=', Auth::user()->id)
])->find($id);
所以我想获取属于该条目的评论,其中评论的 user_id 也与当前登录的用户匹配。有办法吗?
你也可以试试这个代码..
$entry = Entry::select('elements', 'competition.groups.fields', 'competition.groups.reviews')->where('user_id', '=', Auth::user()->id)->get();
此代码将获取属于当前登录用户的 Entries
集合。
如果没有条目 Entries
集合计数将为零。如果存在一些条目,那么您可以遍历集合并获取条目属性。
您可以只添加一个闭包来过滤 with
结果:
$entry = Entry::with([
'elements',
'competition.groups.fields',
'competition.groups.reviews' => function($q){
$q->where('user_id', '=', Auth::id()); // Replaced Auth::user()->id with a shortcut: Auth::id()
}
])->find($id);