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

382

Від автора: вітаю вас, друзі. У цій статті ми продовжимо знайомитися з фреймворком 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
]);
}

А у вигляді їх можна відобразити так:

Вид page

Ім’я:

Прізвище:

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

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

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