Yii2与Yii1的模块中Layout使用区别

Yii2与Yii1的模块中Layout使用区别

YII1中,某个模块的控制器要使用指定的Layout时,代码如下:

class AdminController extends Controller
{

    public $layout = 'application.modules.admin.views.layouts.mainadmin'
;

注意,指定layout时要将全部路径都完整的写出来。

 

Yii2中,代码如下:

class AdminController extends Controller
{
   
public $layout = 'mainadmin'
;

即,在YII2中,不需要指定全部路径,只要直接指定在模块下的layout即可,Yii2自动会在模块的views\layouts目录下寻找指定的layout文件。这是因为在YII2中,类的命名之前都指定了命名空间,因此无需在这里指定全路径了。经过我的测试,如果指定全路径反而会出错。