Yii2 after Action如何检测控制器中的特定动作?

时间:2018-03-12 15:55:10

标签: php yii2

我有一个带有操作View

的控制器
public function actionView($id)
    {   
        $request = Yii::$app->request;
        if($request->isAjax){
            Yii::$app->response->format = Response::FORMAT_JSON;

            return [
                    'title'=> "Request #".$id,
                    'content'=>$this->renderAjax('view', [
                        'model' => $this->findModel($id),
                    ]),
                    'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"])
                ];    
        }else{
            return $this->render('view', [
                'model' => $this->findModel($id),
            ]);
        }
    }

在我的模型中,我有后动作方法

 public function afterAction($action, $result)
    {
        $result = parent::afterAction($action, $result);

        if($action->id == 'view')
            file_put_contents('view.txt', 'test');
        else if($action == 'view')
            file_put_contents('view.txt', 'test');


        return $result;
    }

我想要做的是我想检测控制器是VIEW CONTROLLER。我试过上面的方法,但没有一个工作。有什么建议吗?感谢

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式访问操作ID:

$action->id

答案 1 :(得分:0)

控制器ID存储在

$action->controller->id