Web services Yii如何在每个请求上调用事件处理程序

Web services Yii如何在每个请求上调用事件处理程序,web-services,rest,yii,yii-events,Web Services,Rest,Yii,Yii Events,在Yii中是否可以调用事件处理程序,以便它在每个控制器操作调用上执行。 基本上我有一个RESTful应用程序。当前,在每个请求上,它都显式调用一个身份验证函数。我想要的是在发出任何请求时调用身份验证函数 我所做的 class MyController extends RestController{ public function actionDosomething(){ $this->authenticate();// I don't want this line to be put

在Yii中是否可以调用事件处理程序,以便它在每个控制器操作调用上执行。 基本上我有一个RESTful应用程序。当前,在每个请求上,它都显式调用一个身份验证函数。我想要的是在发出任何请求时调用身份验证函数

我所做的

class MyController extends RestController{
 public function actionDosomething(){
  $this->authenticate();// I don't want this line to be put in every controller action.
 }
}

您的答案是行动前的回调。将其放入主控制器文件中

public function beforeAction($action) {

     if(in_array($action, array( /* you list of actions */ ))) 
     {
       //do your thing
     }
}
另一种选择(我认为更像Yii的方法)是编写一个过滤器,然后使用
过滤器
方法根据需要应用它

它将在未来为您提供更大的灵活性:

似乎是正确的答案。非常感谢。如果答案满足您的要求,请务必将其标记为完整答案,谢谢:)是的,太好了。再次感谢你。