2018-07-23 17:02:35 7812次浏览 5条回答 1 悬赏 50 金钱
public function actionIndex()
{
    $session = Yii::$app->session;
    Yii::$app->response->format=Response::FORMAT_JSON;
    $model = new PostSendInfo();
//        $post = Yii::$app->request->post();
    $post=['company_name'=>'123','mobile_phone'=>12,'sender_dep'=>'2323'];
    if ($post) {
        $model->login_id = $session['login_id'];
        $model->case_id  = "1";
        $model->ems_id   = "2";
        $model->create_time = date('Y-m-d H:i:s',time());
        $model->setAttributes($post);
        if($model->save()){
            return "保存成功!";
        }
        return "保存失败!";

    }
    return "保存失败!";
}

$post 的值保存不成功

最佳答案

  • ╃巡洋艦㊣ 发布于 2018-07-23 17:11 举报

    两个问题:

    1. Yii::$app->response->format=Response::FORMAT_JSON; 这句话是在返回 json 的时候用的,这里要去掉。

    2. 你的数据有可能没有通过模型的验证规则,可以在 save() 前打印一下验证的结果。

    7 条回复
    回复于 2018-07-23 17:13 回复

    模型验证规则我没写,是否需要写接收json的 参数

    回复于 2018-07-23 17:16 回复

    必须写规则,如果没有规则,而且想保存,那就写到 safe

    public function rules()
    {
        return [
            [['company_name', 'mobile_phone', 'sender_dep'], 'safe']
        ];
    }
    
    回复于 2018-07-23 17:25 回复

    添加上了,还是没有存到数据库

    回复于 2018-07-23 17:27 回复

    Yii::$app->response->format=Response::FORMAT_JSON; 会不会是因为这个的原因

    回复于 2018-07-23 17:28 回复

    这句改一下:

    $post['PostSendInfo'] = ['company_name'=>'123', 'mobile_phone'=>12, 'sender_dep'=>'2323'];
    
    回复于 2018-07-23 17:28 回复

    说了这句让你去掉,你怎么还没去掉?这是在返回 json 时用的。

    回复于 2018-07-23 17:37 回复

    去掉了,可以了,谢了

  • 回答于 2018-07-23 17:08 举报
    if($model->save()){
        
        return "保存成功!";
    }
    var_dump($model->getErrors()); //看看错误哈
    
    6 条回复
    回复于 2018-07-23 17:11 回复

    返回是空,数据保存到数据库了,但是 $post的没保存到数据库,是不是模型少方法

    回复于 2018-07-23 17:12 回复

    如果 save() 失败,这里得不到错误。
    $model->save() 之前:

    $model->validate();
    var_dump($model->getErrors());
    
    回复于 2018-07-23 17:14 回复

    save() 之前打印下 $model

    回复于 2018-07-23 17:15 回复

    返回空

    回复于 2018-07-23 17:16 回复

    $model->case_id = "1"; 这样的是有值的,$post 里的参数 没有

    回复于 2018-07-23 17:26 回复

    打印了,没有$post数据,rules规则也写了

  • 回答于 2018-07-25 08:54 举报

    其实如果不嫌麻烦 可以提交数据时候 挨个去拦截 这样就能知道在哪有问题了 。反正我遇到坑人的问题时候就一直这样拦截 ,然后你基本就找到问题所在了,适用一部分bug,就我遇到的问题 可以解决90%

    1 条回复
    回复于 2018-07-25 09:47 回复

    好的,谢谢

  • 回答于 2018-09-20 12:04 举报

    真费劲,官网看一遍教程就没这么个问题了,真是的。

  • 回答于 2019-11-18 15:03 举报

    这个卵框架真是特别坏,总是偷着给你加一些奇怪特性,还没有任何提示

您需要登录后才可以回答。登录 | 立即注册
barton
总监

barton 北京

注册时间:2016-03-30
最后登录:2022-05-11
在线时长:57小时53分
  • 粉丝3
  • 金钱3800
  • 威望0
  • 积分4370

热门问题