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

问题描述 投票:2回答:1

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

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

例:

用户模型的列

- id
- name
- category_id

客户模型的专栏

- id
- name
- category_id

类别模型的列

- id
- name
- type (user or customer)

- - -更新 - - -

例:

分类模型

**ID - NAME - TYPE**
1 - staff - user 
2 - visitor - user 
3 - owner - user 
4 - new - customer
5 - old - customer 

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

要存档这种关系,我应该实施哪种Eloquent Relationship?

laravel eloquent relational-database
1个回答
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);
} 
© www.soinside.com 2019 - 2024. All rights reserved.