Php Yii2-在rest(json)和普通html输出之间切换响应

Php Yii2-在rest(json)和普通html输出之间切换响应,php,ajax,rest,yii,yii2,Php,Ajax,Rest,Yii,Yii2,当有人使用ajaxX-request-With 当没有的时候,关闭它。用这种方法我可以处理搜索引擎 或者没有ajax的用户。(改进SEO) 一些研究:(使用行为) 检查请求头并更改响应 或:(编辑rest控制器) 编辑$serializer='yii\rest\serializer'到$serializer=null 或(在rest控制器动作后覆盖) 并删除serializeData()一些方法 但最终的方法是什么 我认为这些方法不好…我认为您需要扩展ContentCongregator()。

当有人使用ajax
X-request-With
当没有的时候,关闭它。用这种方法我可以处理搜索引擎 或者没有ajax的用户。(改进SEO)

一些研究:(使用行为

检查请求头并更改响应

或:(编辑rest控制器

编辑
$serializer='yii\rest\serializer'
$serializer=null

或(在rest控制器动作后覆盖)

并删除
serializeData()
一些方法

但最终的方法是什么


我认为这些方法不好…

我认为您需要扩展ContentCongregator()。
public function behaviors()
{
    return [
        'verbs' => [
            'class' => \yii\web\ResponseFilter::className(),
            'actions' => [
                'something'  => [
                    'format' => Response::FORMAT_JSON,
                ],
            ],
        ],
    ];
}
public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    return $this->serializeData($result);
}