в моем PagesController :: display () у меня есть этот код:
class PagesController extends AppController {
public function display(...$path) {
$count = count($path);
if (!$count) {
return $this->redirect('/');
}
if (in_array('..', $path, true) || in_array('.', $path, true)) {
throw new ForbiddenException();
}
$page = $subpage = null;
if (!empty($path[0])) {
$page = $path[0];
}
if (!empty($path[1])) {
$subpage = $path[1];
}
$this->set(compact('page', 'subpage'));
try {
$this->render(implode('/', $path));
} catch (MissingTemplateException $exception) {
if (Configure::read('debug')) {
throw $exception;
}
throw new NotFoundException();
}
$test = "abc";
$this->set(compact('test'));
}
}
Это почти то же самое, что и стандартный контроллер страниц , я добавил последние две строки.
Мой шаблон home.ctp содержит:
<?php
var_dump($test);
...
Когда я захожу на сайт, это выводит:
C:\wamp64\www\site\src\Template\Pages\home.ctp:322:null
Что сбивает с толку, потому что отладочный комплект показывает, что эта переменная была установлена:
Почему тестовая переменная недоступна в шаблоне home.ctp?