获取有帖子的用户

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 和他的帖子的信息。

提前致谢!

您的方法顺序错误。

  1. findOrFail 立即执行查询,returns User 记录 $user_id

  2. 将其链接到 ->with() 将启动一个新查询。

  3. 最后,从数据库调用->first()returns第一个User

这样调整您的查询:

User::with('posts')->findOrFail($user_id);

findOrFailfirst会给你用户对象,但你必须决定你将使用的功能。

如果您使用路由模型绑定,那么您可以使用: User::with('posts')->first();User::load('posts');

如果你不使用路由模型绑定,你可以像这样使用 findOrFail: User::with('posts')->findOrFail($user_id);