获取有帖子的用户
Get a user with posts
我正在尝试通过他在 laravel 中的帖子获取用户,到目前为止我已经尝试使用以下行
User::findOrFail($user_id)->with('posts')->first();
但是我得到了 table 上的第一个用户,而不管指定的用户 ID 是什么。
我已经尝试添加 user_id 并且它工作正常,(从路由中获取 user_id)。
到目前为止我得到的结果是如果用户 ID 是 x 并且 table 中的第一个用户的 ID 是 1 我得到用户 ID 1 和他的帖子的信息。
提前致谢!
您的方法顺序错误。
findOrFail
立即执行查询,returns User
记录 $user_id
。
将其链接到 ->with()
将启动一个新查询。
最后,从数据库调用->first()
returns第一个User
。
这样调整您的查询:
User::with('posts')->findOrFail($user_id);
findOrFail
和first
会给你用户对象,但你必须决定你将使用的功能。
如果您使用路由模型绑定,那么您可以使用:
User::with('posts')->first();
或 User::load('posts');
如果你不使用路由模型绑定,你可以像这样使用 findOrFail:
User::with('posts')->findOrFail($user_id);
我正在尝试通过他在 laravel 中的帖子获取用户,到目前为止我已经尝试使用以下行
User::findOrFail($user_id)->with('posts')->first();
但是我得到了 table 上的第一个用户,而不管指定的用户 ID 是什么。
我已经尝试添加 user_id 并且它工作正常,(从路由中获取 user_id)。
到目前为止我得到的结果是如果用户 ID 是 x 并且 table 中的第一个用户的 ID 是 1 我得到用户 ID 1 和他的帖子的信息。
提前致谢!
您的方法顺序错误。
findOrFail
立即执行查询,returnsUser
记录$user_id
。将其链接到
->with()
将启动一个新查询。最后,从数据库调用
->first()
returns第一个User
。
这样调整您的查询:
User::with('posts')->findOrFail($user_id);
findOrFail
和first
会给你用户对象,但你必须决定你将使用的功能。
如果您使用路由模型绑定,那么您可以使用:
User::with('posts')->first();
或 User::load('posts');
如果你不使用路由模型绑定,你可以像这样使用 findOrFail:
User::with('posts')->findOrFail($user_id);