За последние 24 часа нас посетили 22885 программистов и 1236 роботов. Сейчас ищут 815 программистов ...

Почему новый контроллер не подключает layout?

Тема в разделе "Yii", создана пользователем Artur_hopf, 25 сен 2019.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Создал новый контроллер, но он не реагирует на layout.
    Хоть что угодно там пиши, не подключается и ошибок не дает:
    PHP:
    1. <?php
    2.  
    3. namespace app\controllers;
    4.  
    5. use Yii;
    6. use yii\web\Controller;
    7.  
    8. class VueController extends Controller
    9. {
    10.     public $layout = 'layoutVue';
    11.     //public $layout = '@app/views/layouts/layoutVue';
    12.     //public $layout = '211313213';
    13.  
    14.     public function actionIndex()
    15.     {
    16.         return 'vue.js';
    17.     }
    18. }
    Подскажите почему так?
     
  2. kazadai90

    kazadai90 Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    Код (Text):
    1. return $this->render('layout_name', $data);
     
  3. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @kazadai90 Не, так вид подключается. Основной контроллер подключает нормально:

    PHP:
    1. <?php
    2. namespace app\controllers;
    3. use Yii;
    4. use yii\web\Controller;
    5.  
    6. class MainController extends Controller
    7. {
    8.     public $layout = 'basic';
    9.  
    10.     public function actionIndex()
    11.     {    
    12.             return $this->render('view');
    13.     }
    14. }
    --- Добавлено ---
    Разобрался, layout работает только если return возвращает render:
    PHP:
    1. <?php
    2.  
    3. namespace app\controllers;
    4.  
    5. use Yii;
    6. use yii\web\Controller;
    7.  
    8. class VueController extends Controller
    9. {
    10.     public $layout = 'layoutVue';
    11.  
    12.     public function actionIndex()
    13.     {
    14.         return $this->render('mainView');
    15.     }
    16. }