php+mvc как можно передать title из представления в шаблон?

155
12 апреля 2019, 10:00

Пытаюсь разбираться с PHP и в частности с моделью MVC. Подскажите, пожалуйста: Разбирая базовый набор фреймворка yii2, нашел, что в представлении about.php указывается title страницы, а дальше собственно html-код.

<?php
// ...
$this->title = 'About';
?>
<div class="site-about">
...
</div>

Как именно такое реализовано, ведь сначала загружается шаблон, а в нем уже выводится контент? Я понимаю, что есть класс View, который наполняется данными, и затем они выводятся. Но как в поля класса попадает код из представления? about.php, получается, как-то парсится, сохраняются значения полей класса, а сам html представления попадает в некую переменную $content, которая вызывается в шаблоне?

У меня получается так:

  1. в модели я получаю title и пр. Либо из БД, либо прямо руками пишу там.
  2. Контроллер вызывает шаблон, в котором использую полученные данные.
  3. В середине шаблона включаю само представление посредством include view.php

Естественно, тут уже никак не передать title из представления. Нужно ли вообще иметь такую возможность, почему бы и не оставлять все данные в модели...

Answer 1

При чем тут передать из представления в шаблон? Во вьюхе переменная $this является объектом класса View. Этот объект передается во вьюху на уровне родительского контроллера (если не ошибаюсь) и во вьюхе свойству title, объекта View присваивается значение. Скинули объект во вьюху, изменили его там малость, а данные этого свойства вывели в шаблоне, потому что этот объект туда тоже передается. Объект передан по ссылке, возможно поэтому некоторая путаница возникла.

READ ALSO
Помогите разобрать массив SQL, PHP, JSON

Помогите разобрать массив SQL, PHP, JSON

У меня стоит такая задачаНужно Из таблицы bet_games вытащить записи и взять из поля commission_items значение и потом уже получить по этому параметру...

159
Ip телефония для сайта

Ip телефония для сайта

Стала интересна реализация просмотра информации по звонкам на сайте, но не где не могу найти информации на эту тему

176
Как сделать защиту от sql injection? [дубликат]

Как сделать защиту от sql injection? [дубликат]

На данный вопрос уже ответили:

222
Как вставить массив php в mysql

Как вставить массив php в mysql

Ключи и значения собираю в строку с помощью implodeКак вставить их в mysql?

178