Cakephp 数据库关联
Cakephp database associations
我在数据库中有 3 个 table:
Cakephp 3.
Cars{id, type_id,....}
Types{id, name,....}
Images{id, type_name,image_url,....}
在模型车中,我想设置与图像的关系,实际上是模型关联。
我需要从图像中获取 image_url,其值 type_id 在 table 汽车和 table 图像中是相同的。这意味着我可以忘记 table 类型。
现在我正在从控制器获取带有连接查询的图像,但我想关联这些模型。
控制器中的查询如下所示:
$query->join(['table' = 'Images',
'alias' => 'i',
'conditions' => 'Cars.type_id = i.type_id'
]);
这是关系类型:1辆汽车可以有1张或多张图片,1张图片可以属于1辆或多辆汽车。意思是M:M。
它应该是关系 belongsToMany。
我尝试设置不同的 ralations 选项,从 hasMany 到 belongsToMany 它不起作用。
是否有可能这样做,或者可能不是因为一个 table 不包含另一个的主键,我被迫在控制器中使用连接查询?
谢谢你的建议。
在查询中添加了 "recursion" 包含:
$query->contain(['Cars','Types' => ['Images']]);
我得到了我需要的东西。
最好的问候
我在数据库中有 3 个 table: Cakephp 3.
Cars{id, type_id,....}
Types{id, name,....}
Images{id, type_name,image_url,....}
在模型车中,我想设置与图像的关系,实际上是模型关联。 我需要从图像中获取 image_url,其值 type_id 在 table 汽车和 table 图像中是相同的。这意味着我可以忘记 table 类型。 现在我正在从控制器获取带有连接查询的图像,但我想关联这些模型。
控制器中的查询如下所示:
$query->join(['table' = 'Images',
'alias' => 'i',
'conditions' => 'Cars.type_id = i.type_id'
]);
这是关系类型:1辆汽车可以有1张或多张图片,1张图片可以属于1辆或多辆汽车。意思是M:M。 它应该是关系 belongsToMany。 我尝试设置不同的 ralations 选项,从 hasMany 到 belongsToMany 它不起作用。 是否有可能这样做,或者可能不是因为一个 table 不包含另一个的主键,我被迫在控制器中使用连接查询?
谢谢你的建议。
在查询中添加了 "recursion" 包含:
$query->contain(['Cars','Types' => ['Images']]);
我得到了我需要的东西。 最好的问候