我有一个用户模型,它有一组帖子。 我希望用他们的帖子返回一组用户数据,除了每个用户的特殊帖子为json;为此,我使用此代码:
$users=User::with('posts')->get();
foreach($users as $user){
$user->posts=$user->posts->except($except_id);
// $user->posts=null;// ->>> also this code does not work
}
return $users;
但在输出用户中'帖子没有改变!!!
编辑:
$except_id = $user->golden_post_id;
答案 0 :(得分:4)
我尝试了一些方法,最后我发现unset()
可以解决问题。
此代码有效:
$users=User::with('posts')->get();
foreach($users as $user){
$posts=$user->posts->except($except_id);
unset($user->posts);
$user->posts=$post;
}
return $users;
答案 1 :(得分:1)
您可能应该将此作为with
调用中的查询约束,例如像这样:
$users = User::with(['posts' => function($query) use ($except_id) {
$query->where('id', '!=', $except_id);
}])->get();
现在,除了ID为$except_id
的帖子之外,您将收到所有用户的所有帖子,之后您无需经过这些帖子对其进行排序。