Yii2 覆盖 Rest Api actioncreate 方法

Yii2 Override Rest Api actioncreate method

谁能告诉我如何重写 actioncreate 和 actionupdate 方法 yii2 rest api..

class CabController extends ActiveController
  {
     public $modelClass = 'api\modules\v1\models\Cab';

      public function actions(){

        $actions = parent::actions();           

        unset($actions['create']);
        unset($actions['update']);

        return $actions;
    }

     public function actionCreate(){

        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

        $model = $this->modelClass;
       $model->load(Yii::$app->request->post());
       $cur_time = date('Y-m-d H:i:s');
       $model->date_created  =  $cur_time;
       $$model->save(false);
  }  

如果我这样做意味着我得到了类似 500 内部服务器错误的错误和错误消息,例如调用非对象上的成员函数 load() ..如何解决这个问题.. 谢谢...

您不是在创建对象,而是将字符串 api\modules\v1\models\Cab 分配给 $model 变量。将分配部分更改为:

$model = new $this->modelClass;

如果出现 "Class not found" 错误,请将前导反斜杠添加到 class 名称:\api\modules\v1\models\Cab.

关于从字符串创建对象的相关回答:

  • Creating PHP class instance with a string
  • Dynamically create PHP object based on string
  • How to create object from String?