![]() |
Урок 2. Ведение в макеты Yii2Если вы заметили, когда мы визуализируем наши представления, мы получаем много дополнительного материала на наших страницах. ![]() Это из-за макетов. Если вы хотите отключить макет, вы можете это сделать. $this->layout = false; // in the route functionВ результате мы убираем дополнительный контент. Далее мы научимся создавать собственные макеты. Макеты Макеты позволяют нам создавать шаблоны контейнеров, в которые мы можем вводить контент. Мы обычно используем макеты в качестве шаблона, содержащего наши первичные и вторичные меню. Все, что мы не хотим перерисовывать на каждой странице, может быть в нашем макете. Давайте создадим новый макет. В нашем каталоге views/layouts мы создаем файл под названием primary.php и добавьте содержимое ниже <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?php echo $this->title;?></title> </head> <body> <?php echo $content;?> </body> </html>Теперь в нашей функции маршрутизатора мы можем выбрать макет для использования с помощью $this->layout = "primary"; // in router functionВыше мы выбираем primary.php файл в качестве макета для функции контроллера маршрутизатора. В нашем макете у нас есть доступ к $this->view->title, который является переменной класса класса Controller. Мы можем переопределить это в нашей функции контроллера. Полная функция показана ниже public function actionFaq(){ $this->layout = "primary"; // use primary layout $this->view->title = "This is a faq page"; // set the page title $questions = [ 'How hard is yii2', 'What will you need to start development', 'Is PHP easy to learn' ]; return $this->render('faq',['questions'=>$questions]); }Результат показан ниже. ![]() Настройка глобального макета Вместо того чтобы каждый раз устанавливать макет, мы можем установить его для всех вьюшек в контроллере, выполнив следующие действия public $layout = "main";Таким образом, все функции маршрута будут использовать этот макет, если он не будет перезаписан с помощью функции. Пример можно увидеть с нашим контроллером dashboard class DashboardController extends Controller { public $layout = "main"; public function actionHelp(){ $this->view->title ="The dashboard view"; return $this->render('hello'); } } ![]() Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() |
Мои услуги
|
© upread.ru 2013-2022 При перепечатке активная ссылка на сайт обязательна. |