myq1991 2016-03-16 15:06:54 3552次浏览 1条回复 0 0 0

不管是用表单提交get请求还是直接在url加参数,都没办法成功的载入到模型中,有没有人遇到这样的问题?我是2.0.7版本的yii

  • 回复于 2016-03-16 17:37 举报

    你传post的数据 他就load post的数据 你传get 的数据 他就load get 的数据 没啥问题啊

    11 条回复
    回复于 2016-03-16 20:15 回复

    关键就是load get的数据之后,模型里的变量还是为空啊

    回复于 2016-03-16 20:43 回复

    rules配置了吗

    回复于 2016-03-16 20:55 回复

    getErrors里面是空的,也没有任何错误啊

    回复于 2016-03-16 21:09 回复

    假如你的get 是这样的test1=xxx&test2=xxx那么$model-load(yii::$app->request->get(),'')要指定formname为空, 假如searchForm[test1]=xxx&searchForm[test2]=xxx那么如果你的模型名一样 这样才可以不指定formname

    回复于 2016-03-16 21:11 回复

    第二个参数默认的值不是null么?

    回复于 2016-03-16 21:15 回复

    刚刚试了一下,把第二个参数传为''是可以了,不过很奇怪的就是如果没有在rule里加required,还是会获取不到值

    回复于 2016-03-16 23:42 回复

    我最开始已经说过了要配置rules,不一定要设置required ,但是rules必须有这个字段才可以load成功,如果真不想验证 你能保证字段的安全,你可以设置safe,第二个参数呢,如果你传参数都是model name的数组 ,类似这样searchForm[test1]=xxx&searchForm[test2]=xxx,你可以不用设置 ,默认就会获取模型name,如果不是数组,要设置空

    回复于 2016-03-17 00:44 回复

    原来是这样,受教了,不过为什么在post操作的时候貌似没有设置rules数据也被加载进了model呢?

    回复于 2016-03-17 10:21 回复

    你是生成的model吧,那样的rules里字段都有了,你可以看一下源码就了解这个过程了

    回复于 2016-03-17 15:53 回复

    我model是手写的,所以在没有写rules的时候post可以但是get不可以,所以就感觉这个问题很奇怪,看了一下load的源码,感觉好像也没什么问题啊,能否讲解一下这一块呢?

    回复于 2016-03-22 23:09 回复

    如果只是get换成post,一个行一个不行我还真不信。。。这跟get和post屁点关系都没

您需要登录后才可以回复。登录 | 立即注册