тот же макет для некоторых страниц в Yii2 - PullRequest
0 голосов
/ 09 декабря 2018

Я новичок в yii.У меня есть страница с именем main.php.Я хочу, чтобы некоторые другие страницы использовали main.php в качестве макета.мой вид проекта находится в папке "сайт".Я создаю папку для этого представления и отдельный контроллер.но это не работает. Я добавляю $ this-> layout = 'main' в мой проект

Ответы [ 3 ]

0 голосов
/ 09 декабря 2018

В ваших лесах Yii2 должен быть каталог

your_application / views / layouts

поместите файл макета main.php в этот каталог

(или отредактируйте или заменитесуществующий)

после того, как вы выполнили в контроллере действие, где вам нужен новый макет, назначьте макет

$this->layout = 'main';

.

class YourController extends Controller
{
    ....
    public function actionYourAction()
    {
        .......

        $this->layout = 'main';
        return $this->render( ....        ]);
    }
0 голосов
/ 10 декабря 2018

Для замены ВСЕХ контроллеров и действий вы должны добавить это в ваш config/main.php файл:

[
     // ...
     'layout' => 'main',
     'components' => [
         //...
     ]
]

Изменение в одном контроллере:

class SiteController extends Controller

{

    public $layout='//layouts/main';

    public function init() {
        // ...
    }
    //...
}

Изменить только одним действием:

public function actionIndex()
{
    $this->layout = 'mian';

    return $this->render('index', ['model' =>$model]);
}
0 голосов
/ 09 декабря 2018

Поместите main.php или любые файлы макетов в папку views/layouts.

Используйте это в контроллерах: public $layout = '/main';

Или в действиях: $this->layout = '/main';

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...