我有默认的用户模型。现在我有了另一张管理员桌。有没有办法从管理模型返回用户字段(因为管理员正在扩展用户)?我找到了这个示例,但它是在用户模型中存在admin\u id时出现的。我这里有一对一的关系。
class Admin extends User
{
protected $table = 'users';
public static function boot()
{
parent::boot();
static::addGlobalScope(function ($query) {
$query->where('is_admin', true);
});
}
}
这就是我发现的例子。我不知道如何才能从我的管理模型返回用户字段时,它在不同的表。
关键是我希望能够这样做(从用户调用方法):
Admin::first()->posts()
其中posts方法不在admin类上,而是在user类上。
编辑:
为了更好的解释。我有两个表,用户和管理员。他们是一对一的关系,所以我可以这样做:
$admin = Admin::first();
$posts = $admin->user()->posts();
但由于admin应该有users表中的所有字段和admins表中的另一个字段,所以我正在寻找一种方法:
$admin = Admin::first();
$posts = $admin->posts();
我不想在users表中添加admin或其他内容,我仍然想使用admins表,因为我以后需要更多的字段。
1条答案
按热度按时间lg40wkob1#
如果两个表的id相同,请使用特征来定义关系:
您只需确保显式声明关系中的外键名称。
您还可以扩展用户模型并覆盖
$table
但由于各种原因,这可能会带来问题User
属性存在于用户关系上,而不存在于Admin
模型。