每当执行ajax调用时,我希望控制器使用名为“ajax”的布局而不是默认的“main”布局。
有人知道该怎么做吗?
答案 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';
}