Kohana:没有索引时未定义索引

Kohana: Undefined index when there is not one

提问人:Explosion Pills 提问时间:6/7/2011 最后编辑:PetahExplosion Pills 更新时间:6/7/2011 访问量:1805

问:

我正在使用 Kohana 3.1,但出现一个非常奇怪的错误。Kohana POST 处理程序似乎认为存在未定义的索引,而实际上没有索引。

在控制器类中:

$post = $this->request->post();
var_dump(isset($post['jid'])); //true
$jid = $post['jid']; //Undefined Index error.

如果我实际使用它,它可以正常工作,但是无法将其分配给更方便的变量很烦人。有人知道是什么原因导致的吗?$post['jid']

ErrorException [ Notice ]: Undefined index: jid
84       $jid = $post['jid'];

$post var_dump:

array(4) { 
    ["jid"]   => string(1) "7" 
    ["topic"] => string(5) "Test1"
    ["entry"] => string(14) "CHECK ONE TWO" 
    ["enter"] => string(4) "POST" 
}
php kohana undefined-index

评论

3赞 Petah 6/7/2011
var_dump($post)并将其粘贴到您的问题中。
0赞 Phil 6/7/2011
您确定这是发生错误的地方吗?请发布错误消息
1赞 Phil 6/7/2011
@tandu 您是否在与错误相同的请求中看到上面的转储?我在这里唯一能想到的是,您正在尝试读取 GET 请求$_POST
2赞 Petah 6/7/2011
你一定是在做其他事情,你没有告诉我们,或者你的PHP中有一个错误,因为这在语法上是正确的,不应该产生一个.E_NOTICE
1赞 biakaveron 6/7/2011
使用 ,这是一个非常有用的数组函数。Arr::get($_POST, 'jid', $default_value)

答:

1赞 Kemo 6/7/2011 #1

尽管如此,我相信这是一个 PEBKAC,您可以用作该变量的 geter。$this->request->post('jid')

也许您只是跳过了实际的 POST 检查

评论

0赞 Explosion Pills 6/7/2011
感谢您对后期检查的了解。如果不是因为你是个混蛋,我会投赞成票。
0赞 Kemo 6/8/2011
@tandu:我不明白到底是什么让我成为混蛋,我认为这是常识
0赞 Explosion Pills 6/14/2011
你说“我相信这是一个PEBKAC。嘿,我们都会在编程时犯错误。侮辱别人是没有帮助的。
0赞 Kemo 6/14/2011
@tandu:这不是侮辱,如果你这么想,我真的很抱歉。我只是习惯于每天使用这个词,这不是我用来侮辱任何人的东西
0赞 Explosion Pills 6/7/2011 #2

有时问题并不像错误那么明显。在完成发布检查的操作后,页面被 302 重定向(无发布)到自身。事实上,最初的帖子是正确的,但当你打算使用另一个对象时(至少在控制器的时候)调用方法时要小心。我仍然不清楚为什么 Kohana 没有坠毁。$this$this