laravel,获取单个记录的关系($first on a with())

cnwbcb6i  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(277)

我想向$user对象添加一些相关的模型数据。让我解释一下:

$user = User::find(1); // my user object 
// I want to add my defined user profile from the user_profile relationship
$userdata = $user->with('user_profile')->first();

这不起作用:(它返回数据库中第一个用户的用户配置文件!

$user = User::find(1); // my user object 
// I want to add my defined user profile from the user_profile relationship
$userdata = $user->with('user_profile')->get();

这也不是我需要的-在这个场景中,用户总是一条记录,而不是一个集合。
那么如何获取$user的相关“with”数据,并将其存储在$userdata中呢?
谢谢。

o0lyfsai

o0lyfsai1#

试着联系一下 user_profile :

$userdata = $user->user_profile;
watbbzwu

watbbzwu2#

尝试下面的查询
这里$user\u id是您要获取其数据的用户的id。

User::where('id', $user_id)->with('user_profile')->first()

这里您必须在用户模型中定义用户配置文件关系

nhhxz33t

nhhxz33t3#

您正在尝试获取与关联的 user_profile 带着急切的心情。

User::with('user_profile')->get();

如果你想得到单个用户的数据,你可以试试。

User::with('user_profile')->where('id',$user_id)->first();

使用 with('relations') 将返回所有用户及其相关数据。
现在可以从对象本身访问它们:

$user = User::with('user_profile')->where('id',$user_id)->first();
$userProfile = $user->user_profile;

如果 $user 已提取,您要提取关联关系。
那你就可以了

$user->load('user_profile');

希望这有帮助

相关问题