如何共享用户模型和客户模型的类别模型?

时间:2018-02-28 10:10:02

标签: laravel eloquent relational-database

我是Laravel的新手。我正在建立会计系统的应用程序。

我想拥有User和Customer的模型,每个模型都有category_id列。但我不想为每个模型创建每个类别模型。我想拥有一个包含用户和客户模型类别的类别模型。

示例:

用户模型专栏

bin = root.find('<path to bin element>')

客户模型专栏

- id
- name
- category_id

类别模型专栏

- id
- name
- category_id

----- ------更新

示例:

类别模型

- id
- name
- type (user or customer)

因此,当我们创建用户/客户时,我们将获得用户的(员工,访客,所有者)类别以及客户的(新旧)类别。

要归档此关系,我应该实施哪种Eloquent Relationship?

1 个答案:

答案 0 :(得分:1)

您不需要定义类型。 Category模型应该对用户类型一无所知。只需在Category模型中定义两个关系:

public function users()
{
    return $this->hasMany(User::class);
}

public function customers()
{
    return $this->hasMany(Customer::class);
}

您还可以在UserCustomer模型中定义关系:

public function category()
{
    return $this->belongsTo(Category::class);
}