Php 拉威尔5.6:汽车有很多颜色,有很多图像。当试图找到所有“时”;“红色”;汽车1的图像,我得到所有汽车的红色图像
我有三种型号:Php 拉威尔5.6:汽车有很多颜色,有很多图像。当试图找到所有“时”;“红色”;汽车1的图像,我得到所有汽车的红色图像,php,laravel,eloquent,relational-database,eager-loading,Php,Laravel,Eloquent,Relational Database,Eager Loading,我有三种型号: Car.php,color.php,Image.php 它们具有以下关系: 属于任何颜色的汽车:因为一辆汽车可以有多种颜色 任何汽车的颜色:因为一种颜色可以出现在许多汽车上 汽车属于多个图像:因为一辆汽车可以有多个图像 多辆车下的图像:因为一张图像可以被多辆车使用 图像属于颜色:因为每个图像都必须有一种颜色 颜色有许多图像:因为红色可以在许多图像中找到 如果我写Car::find(1)->load('colors.images)它返回所有预期的相关颜色,但是每种颜色都有使用该颜色
Car.php
,color.php
,Image.php
它们具有以下关系:
属于任何颜色的汽车
:因为一辆汽车可以有多种颜色
任何汽车的颜色
:因为一种颜色可以出现在许多汽车上
汽车属于多个图像
:因为一辆汽车可以有多个图像
多辆车下的图像
:因为一张图像可以被多辆车使用
图像属于颜色:因为每个图像都必须有一种颜色
颜色有许多图像
:因为红色可以在许多图像中找到
如果我写Car::find(1)->load('colors.images)代码>它返回所有预期的相关颜色,但是每种颜色都有使用该颜色的图像。所以我会看到车1、2、3等的红色,而不仅仅是车1的图像
这看起来像是颜色。图像忽略了初始车辆
我做错了什么?尝试使用(['colors.images'=>function($query){$query->where('Car_id',$id);}])像Car::find($id)->这样的方法。你需要的是关系,但问题是你的车、颜色和图像是多对多关系(hasManyThrough只适用于一对多关系嵌套)
检查更多信息和可能的解决方法。在查找之前使用查找颜色和图像之间的关系不使用汽车id,因此这不起作用。您可以发布一些示例数据和预期结果吗?