Итак, у вас есть модель Car
и модель Gallery
. Поскольку Gallery
имеет свойство car_id
, его можно использовать для формирования этих ассоциаций CakePHP :
Галерея принадлежит Авто
и
Автомобиль имеет одну галерею
Вы можете выбрать, какие ассоциации вам действительно нужны, и определить их в своих моделях. В вашем случае, вы хотите показать галерею автомобиля при запросе автомобилей, так что:
// in car.php
var $hasOne = 'Gallery';
Затем вы можете выбрать, хотите ли вы использовать Containable для управления тем, какие ассоциации будут включены в запросы, или просто использовать recursive
, чтобы включить все из них:
// in cars_controller.php
$this->set('latest_cars', $this->Car->find('all', array(
'recursive' => 1,
'order' => array(
'Car.modified DESC',
'Car.created Desc'
),
'limit' => '3'
)));
Затем, по вашему мнению, используйте $latest_car['Car']
для доступа к свойствам автомобиля и $latest_car['Gallery']
для доступа к свойствам галереи
EDIT
Если Car
hasMany Gallery
, то вы должны ожидать эту структуру:
[0] =>
Car => (first car)
Gallery =>
[0] => (first gallery of first car)
[1] => (second gallery of first car)
[1] =>
Car => (second car)
Gallery =>
[0] => (first gallery of second car)
etc.
, чтобы получить к нему доступ, по вашему мнению:
<?php
foreach($latest_cars as $latest_car){
foreach ($latest_car['Gallery'] as $gallery)
echo $this->Html->image('/media/filter/small/'.$gallery['dirname'].'/'.$gallery['basename']);
?>