Laravel 5中Eloquent Model继承的最佳方式?

时间:2016-06-16 15:29:08

标签: php laravel inheritance eloquent relationship

我有一个Laravel项目,我正在使用Eloquent作为模型。

假设我有三个相关的表格:

User
Demographics
Roles

我希望我的用户模型基于外键继承DemographicsRoles作为一对一的关系。

我只是想找到一些反馈意见,可能是最有效/优雅/最安全/最佳/最干净的方法。

1 个答案:

答案 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