我正在创建用户个人资料页面,我想从用户模型和 UserProfile 模型中检索数据。但是我在获得结果时遇到了问题。这就是我的所作所为:
用户模型
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'username',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/*
public function isAdmin() {
return $this->admin;
}
*/
public function profile() {
return $this->hasOne('App\UserProfile');
}
}
UserProfile模型
class UserProfile extends Model
{
protected $table = 'user_profile';
protected $fillable = [
'phone',
'address'
];
public function user() {
return $this->belongsTo('App\User');
}
}
然后我访问了我的ProfileController中的关系
public function getProfile($username) {
$user = User::with('user_profile')->where('username', $username)->get();
dd($user);
}
我收到了这个错误:
Call to undefined relationship [user_profile] on model [App\User].
user_profile 是我的表名
答案 0 :(得分:1)
使用正确的关系名称:
$user = User::with('profile')->where('username', $username)->first();
此外,在这种情况下,您应该使用first()
方法来获取用户对象。