Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 Laravel雄辩地检查先前的急负荷关系_Php_Mysql_Database_Laravel - Fatal编程技术网

Php Laravel雄辩地检查先前的急负荷关系

Php Laravel雄辩地检查先前的急负荷关系,php,mysql,database,laravel,Php,Mysql,Database,Laravel,我在链接关系方面遇到了一些麻烦。我想将其中三个链接起来,但这无法正常工作: return UserModel::with('cars.pieces.attributes') 我不仅要检查属性的碎片,还要检查cars.pieces给出的结果。我必须知道这两件事和汽车给良好的属性 我想检索一个用户所选择的汽车,然后检索汽车的各个部分以及这些部分的属性。所有这些都是由用户选择的 只有cars.parties。我有我的用户,然后是cars数组,然后是这辆车的parties数组。当我添加属性时,我的属性

我在链接关系方面遇到了一些麻烦。我想将其中三个链接起来,但这无法正常工作:

return UserModel::with('cars.pieces.attributes')
我不仅要检查属性的碎片,还要检查cars.pieces给出的结果。我必须知道这两件事和汽车给良好的属性

我想检索一个用户所选择的汽车,然后检索汽车的各个部分以及这些部分的属性。所有这些都是由用户选择的

只有
cars.parties。
我有我的用户,然后是cars数组,然后是这辆车的parties数组。当我添加属性时,我的属性不是针对用户的汽车片段,而是针对任何汽车片段的属性

似乎该关系只查找上一个关系,而不是整个数据包

UserModel.php

public function cars(){
    return $this->belongsToMany(CarsModel::class, 'user_cars', 'id_user','id_cars');
}
然后在CarsModel.php中

public function pieces(){
    return $this->belongsToMany(PiecesModel::class, 'cars_pieces', 'id_cars','id_pieces')
}
最后在PiecesModel.php中:

public function attributes(){
    return $this->belongsToMany(AttributeModel::class, 'user_cars_pieces_attributes', 'id_attribute', 'id_piece')
}
最后一个实体使用4个字段作为主键:

id_user, id_car, id_attribute, id_piece
我的关系可能是这样的:

有什么方法可以为用户检索汽车部件的属性

谢谢你的帮助


编辑:我有个主意。我可以检索汽车的碎片,然后根据where子句检查每个碎片的属性,同时使用id_碎片和id_汽车,然后将它们合并到我的原始数组中,但这将是无效的。首先,您在
attributes()
函数中交换了外键。应该是:

public function attributes(){
    return $this->belongsToMany(AttributeModel::class, 'user_cars_pieces_attributes','id_piece', 'id_attribute');
}

其次,您没有指定在哪些模型上定义了每个关系,但是您可能更希望使用
hasMany
。例如,一个用户是否属于多辆车(然后像您当前一样使用
belongTomany
),或者一个用户是否拥有多辆车,即多辆车属于一个用户(然后使用
hasMany
)?

谢谢您的回答!我编辑以指定定义关系的模型。我不小心换了,但代码中的代码很好。我认为通过定义每个关系,可以使用belongtomany。问题是,我不能定义一个关系,不仅仅是基于一个键,而是基于两个键,或者如果Eloquent不能支持这一点,我也不能定义一个替代方法。