Вы всегда можете загрузить элемент, относящийся к категории «по запросу», сообщив об этом из контроллера. Например:
Within Controller Action:
$this->set('elementPath', "directory_name/$categoryName");
Within the View (this can also be tried exactly within a Layout):
<?php
if (!empty($elementPath)) { // you can also set a default $elementPath somewhere else, just in case
echo $this->element($elementPath);
}
?>
На самом деле, есть даже другие способы добиться этого. Если элемент будет загружен в layout , то метод set (), показанный выше, может быть указан из самого представления. Или, это может даже быть получено из параметров URL, как:
Within the View or Layout:
<?php
$elementPath = $this->params['url']['category']; // note that the param array can vary according how you set the url; see http://book.cakephp.org/#!/view/963/The-Parameters-Attribute-params
echo $this->element($elementPath);
?>
Конечно, вы всегда должны будете указывать, но то же самое будет и для проверки, существует ли файл.