将标题设置为';application/json';到控制器YII中的所有操作

将标题设置为';application/json';到控制器YII中的所有操作,json,yii,Json,Yii,我正在使用yii框架创建一个restapi,因此基本输出格式是json 我希望控制器中的所有操作的标题内容类型为“application json” 我试着把它放在控制器的beforeFilter函数中,但它不起作用 有人能帮我吗…在控制器类(protected/components/Controller.php)中创建一个init()函数。当调用任何控制器/操作时,都将调用此函数。例如: public function init(){ if ($this->id == 1){

我正在使用yii框架创建一个restapi,因此基本输出格式是json

我希望控制器中的所有操作的标题内容类型为“application json”

我试着把它放在控制器的beforeFilter函数中,但它不起作用

有人能帮我吗…

在控制器类(protected/components/Controller.php)中创建一个
init()
函数。当调用任何控制器/操作时,都将调用此函数。例如:

public function init(){
    if ($this->id == 1){
        // perform controller specific function
    }
}

$this->id
返回控制器id。显然,您必须将上述代码中的1替换为您希望执行该功能的控制器的相关控制器id

是否可以显示您使用的特定代码?我的建议是在
beforeAction()
中这样做。只是想知道:为什么是超类?为什么不使用特定控制器的
init()
?甚至是过滤器?无论如何,OP不需要对
id
设置条件,对吗?