【发布时间】:2019-05-07 18:41:45
【问题描述】:
我需要获取具有相关个人资料的用户,但如果下面的个人资料字段为空:
Route::get('/user', function (Request $request) {
return $request->user()->load('profile'); // { id: 1, ... profile: null }
});
但在这种情况下,配置文件字段已填写:
Route::get('/user', function (Request $request) {
$user = $request->user();
$profile = $user->profile;
return $user; // { id: 1, ... profile: { name: 'alex', ... } }
});
您如何解释这种行为以及在我的情况下加载配置文件的正确方法是什么?
关系:
public function user(){
return $this->belongsTo('App\Models\User');
}
public function profile(){
return $this->role == 'model' ? $this->hasOne('App\Models\Model\Profile') : $this->hasOne('App\Models\Client\Profile');
}
【问题讨论】:
-
查看这篇文章了解预加载:laravel-news.com/eloquent-eager-loading
-
return $request->user()->with('profile')返回错误“Illuminate\Database\Eloquent\Builder 类的对象无法转换为字符串”
标签: laravel laravel-5.7