CakePHP 2.x Доступ к другой модели
Noob, чтобы испечь PHP здесь.
Bicycle belongsTo Stand
Stand hasMany Bicycle
Stand belongsTo Station
Station hasMany Stand
Я испек CRUD, и теперь я хочу отображать название станции, когда я смотрю велосипед. Как мне определить отношения между велосипедом и станцией? Или что мне нужно сделать, чтобы включить модель станции в контроллер велосипедов?
Что я пробовал до сих пор. Который выбрасывает "Уведомление (8): неопределенный индекс: станция":BicyclesController.php:
public function index() {
$this->Bicycle->recursive = 2;
$this->set('bicycles', $this->Paginator->paginate());
}
index.ctp:
<?php echo $this->Html->link($bicycle['Station']['name'].$bicycle['Stand']['stand_no'], array('controller' => 'stands', 'action' => 'view', $bicycle['Stand']['id'])); ?>
Помогите!
1 ответ
Поскольку у вас нет прямой связи между велосипедом и станцией, он не будет доступен в течение $bicycle['Station']
Более вероятно, будет доступно в $bicycle['Stand']['Station]['name']
,
Чтобы увидеть, действительно ли он возвращается с рекурсивным набором, как есть, я бы снова запустил запрос и вызвал $debug($bicycle);die;
в следующем порядке.
public function index() {
$this->Bicycle->recursive = 2;
$bicycles = $this->Paginator->paginate();
$debug($bicycle);die;
$this->set(compact('bicycles'));
}
Это уничтожит модель на этом этапе и отобразит массив возвращаемых результатов. После этого вы увидите, где находится нужная вам информация и как получить к ней доступ. Просто удалите $debug
линия, когда закончено.