Схема
protected mixed
getChild (
string $child, array $args = array() )
Аргументы
Аргумент |
Возможный тип |
Описание |
$child |
string |
— |
$args = array() |
array |
— |
Описание
Метод позволяет подключить дочерний контроллер и вызвать на нем какой-либо метод, получив сгенерированый результат (т.е. готовое представление со всеми подставленными значениями). Возвращает html-код представления (
string
), либо
void
, если указанный контроллер не найден.
Стоит отметить, что в переменную
$child
следует передавать путь к контроллеру в виде маршрута:
'common/column_left'
.
Для детальной информации о маршрутах, прочтите соответствующую
статью.
Пример использования:
// пример вызова из любого контроллера
$this->data['column_left'] = $this->getChild('common/column_left');
Исходный код
$action = new Action($child, $args);
if (file_exists($action->getFile())) {
require_once($action->getFile());
$class = $action->getClass();
$controller = new $class($this->registry);
$controller->{$action->getMethod()}($action->getArgs());
return $controller->output;
} else {
trigger_error('Error: Could not load controller ' . $child . '!');
exit();
}