2015-06-01 18:44:37 4770次浏览 2条回答 0 悬赏 12 金钱

RESTful 插入新数据 是否可以调用save()方法? 我在RESTful 接口调用save()方法插入数据 有两个字段一直保存不了,其他的字段正常可以保存 。

  • 回答于 2015-06-03 12:40 举报

    可以用的,如果是用的yii自带的CreateAction,要注意的是,他在读取参数的时候使用的是$model->load(Yii::$app->getRequest()->getBodyParams(), ''); 方法load在读取参数时,没有设rule或者不在safeAttributes里的字段不会自动读取,具体可以参考下Yii2 安全字段

    3 条回复
    回复于 2015-11-27 16:57 回复

    请问如果不使用yii自带的yii的createAction 具体要怎么做啊

    回复于 2015-11-27 21:44 回复

    可以自己模仿yii的createAction写一个action,在controller里指定create方法调用你自己写的类,如

    public function actions()
    {
        return [
            'index' => [
                'class' => 'yii\rest\IndexAction',
                'modelClass' => $this->modelClass,
                'checkAccess' => [$this, 'checkAccess'],
            ],
            'create' => [
                'class' => 'frontend\actions\item\CreateAction',
                'modelClass' => $this->modelClass,
                'checkAccess' => [$this, 'checkAccess'],
            ],
        ];
    }
    

    然后在自己写的CreateAction里对load读取不了的字段手动赋值

    回复于 2015-11-28 00:29 回复

    非常感谢您的回答,帮了大忙,感激不尽,谢谢了

    觉得很赞
  • 回答于 2015-11-27 16:58 举报

    遇到同样的问题,请问您是怎么解决的啊,谢谢了

您需要登录后才可以回答。登录 | 立即注册
长春子
见习主管

长春子

注册时间:2013-12-23
最后登录:2015-11-02
在线时长:10小时37分
  • 粉丝8
  • 金钱318
  • 威望0
  • 积分418

热门问题