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