Yii2中所有Ajax调用的不同布局

时间:2015-02-10 13:55:54

标签: php ajax yii2

每当执行ajax调用时,我希望控制器使用名为“ajax”的布局而不是默认的“main”布局。

有人知道该怎么做吗?

2 个答案:

答案 0 :(得分:3)

对于全局解决方案,您可以在components中创建基本控制器并更改init函数中的布局:

namespace app\components;

class Controller extends \yii\web\Controller 
{

    public function init()
    {
        parent::init();
        if (Yii::$app->request->isAjax) {
            $this->layout = '@app/path/to/ajax';
        }
    }
}

然后,您应该确保控制器扩展app\components\Controller

答案 1 :(得分:0)

您需要检查它是否是Ajax请求然后更改布局

if(Yii::$app->request->isAjax) {
  $this->layout = 'ajax';
}