douzhantao2857 2017-04-16 07:43
浏览 98

Yii2 ActiveController重写默认的post动作

I have no clue how to do it in YII2 and I didn't find anything in the docs. I've tried:

public function actionCreate() {
     //code   
}

my controller:

<?php
namespace app\controllers;

use yii\filters\auth\HttpBasicAuth;
use yiiest\ActiveController;

class TempController extends ActiveController
{
    public $modelClass = 'app\models\Event';

}
?>

How to rewrite default post action in a Yii2 ActiveController?

  • 写回答

1条回答 默认 最新

  • dswu26846 2017-04-16 10:21
    关注

    I assume by default post action you mean create action with POST HTTP method.

    You need to override actions() method in TempController.

    You can remove it:

    /**
     * @inheritdoc
     */
    public function actions()
    {
        $defaultActions = parent::actions();
        unset($defaultActions['create']);
        return $defaultActions;
    }
    

    And now you can write your own actionCreate method like you tried before.

    Or you can create separate action class and use it instead:

    /**
     * @inheritdoc
     */
    public function actions()
    {
        $defaultActions = parent::actions();
        $defaultActions['create'] = [
            'class' => 'yiiest\CreateAction', // change it to your class
            // modify configuration below, or not
            'modelClass' => $this->modelClass,
            'checkAccess' => [$this, 'checkAccess'],
            'scenario' => $this->createScenario,
        ];
        return $defaultActions;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么