我有两个表user
和profile
。配置文件表具有user_id
作为外键。我已经关联了两个表。
在修补程序中,我可以看到建立了这种关系,但是在代码中却没有从其他表中获取详细信息。
我也尝试过
return $this->belongsTo('User::class');
用户模型
public function profile() {
return $this->hasOne('Profile');
}
个人资料模型
public function user() {
return $this->belongsTo('User');
}
答案 0 :(得分:1)
我看到两件事并不完全正确。
在修补程序中获取用户的个人资料,请插入以下行:
$user = User::find([user_id]);
然后:
$user->profile();
如果要关联:: class,则应使用:
return $this->belongsTo(User::class);
如果要使用字符串关联,应使用:
return $this->belongsTo('App\User');
return $this->hasOne('App\Profile');
另一个提示是,每次更换控制器时,您都必须关闭并再次打开修补器。
答案 1 :(得分:1)
尝试为hasOne
和belongsTo
方法指定键,如下所示:
$this->hasOne('Profile', 'foreign_key', 'local_key');
$this->belongsTo('User', 'foreign_key', 'local_key');
还要注意一对一关系: https://laravel.com/docs/6.x/eloquent-relationships#one-to-one