IO v6. View и работа с ними, взаимодействие View с Model
Описание
View - это html файл, шаблонизируемый через Twig, содержащий в себе элементы интерфейса (UI).
Layout view — это html файл, шаблонизируемый через Twig, который определяет структуру и внешний вид пользовательского интерфейса (UI).

Функции
render()
Встроенная функция controller, отрисовывающая указанную view с использованием предустановленной layout view (из настроек controller, либо принудительно измененной).
self::render(string $view, array $params = []): void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$view | string | entityname view файла. | Да |
$params | array | Массив параметров, передаваемых в указанный view файл. | Нет |
Рендер view в controller с layout view
public static function actionIndex($method, $end)
{
self::render('app.view.example');
// или
self::render('app.view.example', [
'hello' => 'world',
]);
}
renderPlain()
Функция, отрисовывающая указанную view без использования layout view.
selfфункция является встроенной функцией controller и используется в них.IOCoreфункция используется в model.- Twig функция используется в view.
self::renderPlain(string $view, array $params = []): void
IOCore::renderPlain(string $view, array $params = []): void
{{renderPlain(string $view, array $params = [])}}
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$view | string | entityname view файла. | Да |
$params | array | Массив параметров, передаваемых в указанный view файл. | Нет |
Рендер view в controller без layout view
public static function actionIndex($method, $end)
{
self::renderPlain('app.view.example');
// или
self::renderPlain('app.view.example', [
'hello' => 'world',
]);
}
Рендер view в model без layout view
public static function doExample($result, $params)
{
IOCore::renderPlain('app.view.example');
// или
IOCore::renderPlain('app.view.example', [
'hello' => 'world',
]);
$result->error_code = EIO_OK;
__exit:
return $result;
}
Рендер view во view
{{ renderPlain('app.view.example') }}
<!-- или -->
{{ renderPlain('app.view.example', {
hello: 'world',
}) }}
setLayout
Встроенная функция controller, принудительно изменяющая layout view для следующих render функций тела action функции.
self::setLayout(string $view): void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$view | string | entityname view файла, который будет использоваться в качестве layout view. | Да |
Принудительная замена layout view в controller
public static function actionIndex($method, $end)
{
self::setLayout('app.view.layout');
self::render('app.view.example', []);
}