【发布时间】:2018-10-03 03:05:13
【问题描述】:
定义一个简单的查询来获取三个表数据
表users,
表user_details,
表user_device_datas
在我的LoginController 上定义一个函数来从UserDetails 模型中获取数据。
$userInformation = UserDetails::userDetail($user->id);
在User模型上定义关系
public function UserDeviceData() {
return $this->hasMany(UserDeviceData::class);
}
public function UserDetails()
{
return $this->hasOne(UserDetails::class);
}
在UserDetails 上为我的获取数据的查询建模
public static function userDetail($id){
$result = User::whereHas('userDetails',function($query) use ($id) {
$query->where('user_id',$id);
})->whereHas('UserDeviceData',function($query) use ($id) {
$query->where('user_id',$id);
})->where('user.id', $id)
->with('userDetails','UserDeviceData')
->first();
}
我得到的回应:
"userInfo": {
"id": 2,
"name": null,
"email": "test@test.com",
"phone": null,
"address": null,
"company": null,
"description": null,
"device_id": null,
"system_role": "User",
"status": "Active",
"otp_verify_id": "253526851",
"parent_id": 0,
"last_login": "2018-04-23 12:03:43",
"profile_picture": null,
"business_card_pic": null
}
我没有得到我的 userDetails 查询数据。我的代码有什么错误?
【问题讨论】:
标签: laravel laravel-5.5