2018-12-10 09:41:43 1404次浏览 1条回答 0 悬赏 10 金钱

最近碰到一个很奇怪的问题,表单提交之后,总是无法正确获取提交的数据,在调试模式下信息如下:

Request Body
Name	Value
Content Type	'application/x-www-form-urlencoded'
Raw	'_csrf=3KBuJjlgjFq1L7_ukZuCc8cxrt4NPN2WDhCZqwMICOuw5T95CC3qAPZjkqKl8s4q9HL0skZErPRYavfbN3lYqg%3D%3D&VideoModel%5Bkeyword%5D=nihao'
Decoded to Params	[
    '_csrf' => '3KBuJjlgjFq1L7_ukZuCc8cxrt4NPN2WDhCZqwMICOuw5T95CC3qAPZjkqKl8s4q9HL0skZErPRYavfbN3lYqg=='
    'VideoModel' => [
        'keyword' => 'nihao'
    ]
]

可以看到 keyword 是有内容的,但是我为什么无法通过 $model->keyword 正确获取呢?甚至我自己在视图中使用 print_r($test);

可以得出下面的结果:

Array ( [_csrf] => 3KBuJjlgjFq1L7_ukZuCc8cxrt4NPN2WDhCZqwMICOuw5T95CC3qAPZjkqKl8s4q9HL0skZErPRYavfbN3lYqg== [VideoModel] => Array ( [keyword] => nihao ) ) 

但是我如果直接在视图中使用:

Html::encode($str3['VideoModel']['keyword']);

却什么也无法输出,而且也没有报错。。。

想请教下究竟是为什么?或者指点下大概是什么问题,有什么解决思路?
先谢谢了。

补充于 2018-12-10 09:43

补充下这句前面是有 echo 的:

echo Html::encode($str3['VideoModel']['keyword']);

最佳答案

  • tisswb 发布于 2018-12-10 17:00 举报

    1.视图中无法打印当前页面form将要提交的数据格式吧?
    2.你可以试试在控制器中打印Yii::$app->request->post();
    3.$model->keyword中的$model是啥?form模型还是ar模型?如果是form模型那需要看看你view中的代码了,如果是ar模型,那需要你先赋值或者有个$model->load(Yii::$app->request->post())这种类似的操作才行吧

    总体感觉你的提问的信息量不足以精确定位错误,需要你进一步排查了

    2 条回复
    回复于 2018-12-10 17:14 回复

    多谢了,问题已经找到了,验证的问题,我原来一直以为验证是无所谓的,仔细看了下debug信息才知道是没有通过验证。。。还是谢谢了。

    回复于 2018-12-10 17:18 回复

    哈哈 原来是这样

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
sk811229
经理

sk811229

注册时间:2018-05-23
最后登录:2022-10-06
在线时长:16小时47分
  • 粉丝0
  • 金钱770
  • 威望10
  • 积分1030

热门问题