我有一个Laravel项目,我正在使用Eloquent作为模型。
假设我有三个相关的表格:
User
Demographics
Roles
我希望我的用户模型基于外键继承Demographics
和Roles
作为一对一的关系。
我只是想找到一些反馈意见,可能是最有效/优雅/最安全/最佳/最干净的方法。
答案 0 :(得分:2)
所以你只是在寻找基本关系,并渴望加载这些关系 试试这个:
class User extends Model
{
public function demographic()
{
return $this->hasOne('App\Demographic');
}
public function role()
{
return $this->hasOne('App\Role');
}
}
class Demographic extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
class Role extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
然后以所有关系访问用户:
$user = User::with(['demographic', 'role'])->find(1);
var_dump($user->demographic); // returns the related Demographic model
var_dump($user->role); // returns the related Role model