Yii2: view компонент

Yii2: view компонент

От автора: приветствую вас, друзья. В этой статье мы продолжим знакомиться с фреймворком Yii. На очереди у нас очередной компонент архитектуры MVC — виды. Компонент Yii2 view отвечает за представление данных, проще говоря, за показ оформленных данных. Продолжим?

Итак, в прошлых статьях мы с вами работали с компонентом Controller паттерна MVC. Контроллеры в Yii2 отвечают за прием запроса, полученного от пользователя и обращение к нужным моделям и видам для возвращения запрошенных данных в ответ на полученный от пользователя запрос.

Для оформления данных контроллер подключает вид (view), используя метод render (еще говорят рендеринг вида). Что нам для начала нужно знать о представлениях? Представления хранятся в папке views. Если мы заглянем в эту папку, то изначально увидим там следующую картину:

Yii2: view компонент

В папке views после установки фреймворка находятся две папки: layouts и site. К папке layouts мы вернемся в следующих статьях, пока можно просто сказать, что в этой папке находятся шаблоны приложения Yii2.

Сейчас нам больше интересна папка site. В этой папке хранятся все виды контроллера SiteController. Думаю, вы уже догадались, что все представления будущих контроллеров будут упорядоченно храниться в своих папках, которые называются по имени контроллера. Например, в прошлой статье мы создали контроллер TestController, соответственно, все его виды мы будем помещать в папку test. Давайте ее создадим.

Yii2: view компонент

Теперь что касается файлов представлений. Здесь работает похожая логика и, полагаю, что многие из вас уже догадываются, как называть виды. Правильно, их принято именовать по названиям действий (action) контроллера. Как вы помните, наш TestController включает в себя пару действий: actionIndex и actionPage. Соответствующие им файлы представлений мы назовем index.php и page.php:

Yii2: view компонент

Как же теперь осуществить рендеринг? Проще говоря, как подключить нужный вид? Сделать это поможет метод render(). Данный метод принимает в себя два параметра: строковое наименование файла и массив данных. При этом второй параметр является необязательным, т.е. если нам не нужно передавать никаких данных в вид, тогда мы можем ограничиться только первым параметром.

Давайте вернемся в тестовый контроллер и подключим нужные виды.

class TestController extends Controller
{

    public function actionIndex()
    {
        return $this->render('index');
    }

    public function actionPage()
    {
        return $this->render('page');
    }

}

Yii2: view компонент

Теперь взглянем на стартовую страницу сайта в браузере.

Yii2: view компонент

Как видим, подключился нужный нам вид. Давайте теперь попробуем передать пару переменных в вид. Это можно сделать, к примеру, так:

public function actionPage()
{
    $name = 'John';
    $surname = 'Doe';
    return $this->render('page', [
        'name' => $name,
        'surname' => $surname
    ]);
}

А в виде их можно вывести так:

<h1>Вид page</h1>
<p>Имя: <?= $name ?></p>
<p>Фамилия: <?= $surname ?></p>

Также возможно кому-то понравится передавать данные, используя функцию PHP compact():

public function actionPage()
{
    $name = 'John';
    $surname = 'Doe';
    return $this->render('page', compact('name', 'surname'));
}

Результат в браузере при этом будет тем же. На этом, пожалуй, остановимся. Больше о фреймворке Yii вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree