Laravel,获得单个记录的关系(带()的$ first)

时间:2018-04-23 11:21:16

标签: php mysql laravel eloquent

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

document.getElementById("convertbutton").addEventListener("click", function () {
  var therm = document.getElementById("thermid").value;
  var MWh = therm * 0.029307;
  document.getElementById("MWhid").innerHTML = MWh; 
})

这不起作用:(它返回我的数据库中第一个用户的用户个人资料!

$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();

这不是我所需要的 - 用户在这种情况下始终是单个记录,而不是集合。

那么如何获得与#34;相关的" $ user的数据,并将其存储在$ userdata中?

感谢。

3 个答案:

答案 0 :(得分:2)

您正在尝试获取具有关联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');

希望这有帮助

答案 1 :(得分:0)

尝试以下查询

此处$ user_id是您要获取其数据的用户的ID。

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

您必须在此处定义用户模型中的user_profile关系

答案 2 :(得分:0)

尝试此操作以获得相关user_profile

$userdata = $user->user_profile;