Yii2中某些页面的布局相同

时间:2018-12-09 07:22:34

标签: php layout yii

我是yii的新手。我有一个名为main.php的页面。我希望其他一些页面使用main.php作为布局。我的项目视图在“站点”文件夹中。我为该视图创建一个文件夹,并创建一个单独的控制器。但这不起作用。我在项目中添加了$ this-> layout ='main'

3 个答案:

答案 0 :(得分:1)

将您的main.php或任何布局文件放入views/layouts文件夹中。

在控制器中使用它:public $layout = '/main';

或在操作中:$this->layout = '/main';

答案 1 :(得分:0)

您的Yii2脚手架中应该有一个目录

您的应用程序/视图/布局

将布局文件main.php放入此目录

(或编辑或替换现有的)

一旦在controllerAction中完成了需要新布局的工作后,分配布局

$this->layout = 'main';

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

        $this->layout = 'main';
        return $this->render( ....        ]);
    }

答案 2 :(得分:0)

要更改 ALL 控制器和操作,必须将其添加到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]);
}