Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Именованные виды в yii

Именованные виды

При рендеринге вида, вы можете указать нужный вид, используя как имя вида, так и путь к файлу/алиас. В большинстве случаев вы будете использовать первый вариант, т.к. он более нагляден и гибок. Мы называем виды, которые были вызваны с помощью сокращенного имени именованные виды.

Имя вида преобразуется в соответствующий ему путь файла в соответствии со следующими правилами:



  • Имя вида можно указывать без расширения. В таком случае в качестве расширения будет использоваться .php. К примеру, имя вида about соответствует файлу about.php.
  • Если имя вида начинается с двойного слеша //, соответствующий ему путь будет @app/views/ViewName. Т.е. вид будет искаться в [[yii\base\Application::viewPath|папке видов приложения по умолчанию]]. Например, //site/about будет преобразован в @app/views/site/about.php.
  • Если имя вида начинается с одинарного слеша /, то вид будет искаться в [[yii\base\Module::viewPath|папке видов по умолчанию]] текущего модуля . Если активного модуля на данный момент нет, будет использована папка видов приложения по умолчанию, т.е. вид будет искаться в @app/views, как в одном из примеров выше.
  • Если вид рендеринтся с помощью [[yii\base\View::context|контекста]] и контекст реализует интерфейс [[yii\base\ViewContextInterface]], путь к виду образуется путем присоединения [[yii\base\ViewContextInterface::getViewPath()|пути видов]] контекста к имени вида. В основном это применимо к видам, которые рендерятся из контроллеров и виджетов. Например, about будет преобразован в @app/views/site/about.php если контекстом является контроллер SiteController.
  • Если вид рендерится из другого вида, папка, в которой находится текущий вид будет добавлена к пути вложенного вида. Например, item будет преобразован в @app/views/post/item если он рендерится из вида @app/views/post/index.php.

В соответствии с вышесказанным, вызов $this->render('view') в контроллере app\controllers\PostController будет рендерить файл @app/views/post/view.php, а вызов $this->render('_overview') в этом виде будет рендерить файл @app/views/post/_overview.php.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'