Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有3个外键的数据透视表的雄辩模型?_Php_Mysql_Database_Eloquent - Fatal编程技术网

Php 具有3个外键的数据透视表的雄辩模型?

Php 具有3个外键的数据透视表的雄辩模型?,php,mysql,database,eloquent,Php,Mysql,Database,Eloquent,我正在做一个有这种模型的项目 用于存储所有供应商详细信息的供应商表-供应商就像提供某种服务的公司 供应商 id | name ----+------- 1 | abc 2 | def 然后我有一个服务表,其中包含供应商可以提供的所有服务的列表: 服务 id | name ---+---------------- 1 | abc 2 | def 3 | ghi 还有一个区域表,其中包含供应商可以选择是否在该区域提供服务的所有区域的列表 区域 id | name ---+

我正在做一个有这种模型的项目

用于存储所有供应商详细信息的供应商表-供应商就像提供某种服务的公司

供应商

id  | name
----+-------
 1  | abc 
 2  | def
然后我有一个服务表,其中包含供应商可以提供的所有服务的列表:

服务

id | name
---+----------------
1  |  abc
2  |  def
3  |  ghi
还有一个区域表,其中包含供应商可以选择是否在该区域提供服务的所有区域的列表

区域

id | name
---+------
1  | abc
2  | def
3  | ghi
现在,我希望有一个数据透视表,用于存储哪个供应商在哪个区域提供哪个服务以及价格的详细信息,因此我的数据透视表结构如下所示:

vendor_id  | service_id | area_id | price 
-----------+------------+---------+---------
   1       |    1       |    2    |   25.00
   1       |    1       |    1    |   24.00
   2       |    1       |    1    |   23.00
等等

因此,现在我有3个不同的雄辩模型,用于服务和供应商领域;但是,由于pivot表包含3个外键,因此我无法在供应商每次更改其首选项时正确更新pivot表


您能否建议我如何定义此场景中的关系,或者我是否应该更改表结构以存储此数据?

以下2013年的文章为我做了这项工作

设置如下所示

Users
id | name | email

Projects
id | title | details

Roles
id | title

Project_User
id | project_id | user_id | role_id

class Project extends Eloquent
{
    public function users(){
        return $this->belongsToMany('User','project_user','project_id','user_id')
            ->withPivot('role_id')
            ->join('roles','role_id','=','roles.id')
            ->select('roles.title as pivot_roles_title');
    }
}

不要把它当作一个支点,把它看作一个实体,你可以称它为提供服务或任何你想要的东西。并为itI搜索创建了一个雄辩的模型,在2020年进行了大量搜索,却一无所获。如何使用3个外键附加和同步?因为我必须在数据库中完成相同的场景。您如何在这里附加新条目?