Від автора: вітаю вас, друзі. У цій статті ми продовжимо знайомитися з фреймворком Yii. На черзі у нас черговий компонент архітектури MVC — види. Компонент Yii2 view відповідає за представлення даних, простіше кажучи, за показ оформлених даних. Продовжимо?
Отже, в минулих статтях ми з вами працювали з компонентом Controller шаблону MVC. Контролери у Yii2 відповідають за прийом запиту, отриманого від користувача і звернення до потрібних моделей і видів повернути запитаних даних у відповідь на отриманий від користувача запит.
Для оформлення даних контролер підключає вид (view), використовуючи метод render (ще кажуть рендеринг виду). Що нам для початку потрібно знати про уявленнях? Уявлення зберігаються в папці views. Якщо ми заглянемо в цю папку, то спочатку там побачимо наступну картину:
У папці views після установки фреймворку знаходяться дві папки: layouts і site. До папки layouts ми повернемося в наступних статтях, поки можна просто сказати, що в цій папці знаходяться шаблони додатки Yii2.
Зараз нам більше цікава папка site. У цій папці зберігаються всі види контролера SiteController. Думаю, ви вже здогадалися, що всі уявлення майбутніх контролерів будуть впорядковано зберігатися в папках, які називаються по імені контролера. Наприклад, у минулій статті ми створили контролер TestController, відповідно, всі його види ми будемо розміщати в папку test. Давайте її створимо.
Тепер що стосується файлів уявлень. Тут працює схожа логіка і, вважаю, що багато з вас вже здогадуються, як називати види. Правильно, їх прийнято іменувати за назвами дій (action) контролера. Як ви пам’ятаєте, наш TestController включає в себе кілька дій: actionIndex і actionPage. Відповідні їм файли представлень ми назвемо index.php і page.php:
Як же тепер здійснити рендеринг? Простіше кажучи, як підключити потрібний вигляд? Зробити це допоможе метод render(). Даний метод приймає у себе два параметра: рядок найменування файла і масив даних. При цьому другий параметр є необов’язковим, тобто якщо нам не потрібно передавати ніяких даних вигляд, тоді ми можемо обмежитися лише першим параметром.
Давайте повернемося в тестовий контролер і підключимо потрібні види.
class TestController extends Controller
{
public function actionIndex()
{
return $this->render(‘index’);
}
public function actionPage()
{
return $this->render(‘page’);
}
}
Тепер поглянемо на стартову сторінку сайту в браузері.
Як бачимо, підключився потрібний нам вигляд. Давайте тепер спробуємо передати пару змінних у вид. Це можна зробити, наприклад, так:
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 можна подивитися в цьому циклі уроків.