На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Урок 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, yii2, php, фреймворки, уроки по yii2





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Ответы на компьютерные вопросы
Бесплатные уроки по Java


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.