我知道标题可能有点不清楚,所以这里有一个例子。假设我有一个用户和一个帖子。一个用户有很多帖子。如果不向用户模型中添加帖子字段,我将如何获取帖子。
编辑:
我现在意识到我的问题不清楚。我完全理解如何定义关系,我的问题给出了下面的代码
$user = User::where('id', 1)->with('posts')
这里发生的事情是,$user
现在有一个名为posts的属性,其中包含属于用户的所有帖子。我不想这样我想做的事情如下
$user = User::where('id', 1);
$posts = $user->posts;
return response(['user' => $user, 'posts' => $posts])
问题是$user
仍然具有posts属性。我不想让它变成那样。
EDIT我所说的拥有posts属性的意思如下
在调用$user->posts之前,$user
看起来像:
['id' => 1, 'name' => 'jacob']
调用$user->posts
后
$user = ['id' => 1, 'name' => 'jacob', 'posts' => ['id' => 1, 'user_id' => 1]]
我想要一个检索帖子的方法而不需要修改$user对象
4条答案
按热度按时间sbdsn5lh1#
编辑
使用laravel集合forget()
用户表
poststable
在本例中,用户有很多帖子。并且帖子属于用户。
用户::class
Post::class
然后,您可以通过
vsnjm48y2#
为了最有效地从数据库中检索数据并最终得到“平面”数组,您仍然应该使用关系来检索它们,如下所示:
如果你出于某种原因不想利用关系
b4qexyjb3#
你可以通过使用资源来实现这一点
1-首先创建新的用户资源:
2-在您的控制器中:
Laravel文档
ua4mk5z44#
使用unset方法,帖子关系将被删除: