对于那些早些时候可能已经读过这些内容的读者,我已经做了一些研究并完全修改了我的问题。我一直有一个问题,我的表单请求被安全组件篡改,尽管当安全组件被禁用时一切正常。我已经追查到的形式单行:CakePHP 1.26:'安全'组件中的错误?
<?php echo $form->create('Audition');?>
<fieldset>
<legend><?php __('Edit Audition');?></legend>
<?php
echo $form->input('ensemble');
echo $form->input('position');
echo $form->input('aud_date');
// The following line works fine...
echo $form->input('owner');
// ...but the following line blackholes when Security included
// and the form is submitted:
// echo $form->input('owner', array('disabled'=>'disabled');
?>
</fieldset>
<?php echo $form->end('Submit');?>
(我注释掉为清晰起见,问题的行),我想我下面以表格的辅助规则;据我所知,这是安全组件中的一个错误,但我太肯定知道CakePHP n00b了。我很想获得一些反馈,如果这是一个真正的错误,我将把它提交给CakePHP团队。我也很想知道我是否在愚蠢,错过了一些明显的东西。
(抱歉在这里讨论的意见,但我没有在留言给他们足够的空间)
UPDATE:谢谢洁圣,你约100%正确的 - “的输入值会禁用时不提交“。我甚至在the official HTML spec上看到它,它说,“[禁用的元素]不能接收用户输入,也不会将其值与表单一起提交”。但蛋糕IS提交值的形式!当我禁用安全组件时,我可以查看随表单提交的POST数据,果然,“所有者”字段已提交!不幸的是,这正是我想要的行为,但它似乎与官方的HTML规范不一致......所以我认为这是一个标准表单助手的错误。我会把这个报告给CakePHP团队作为一个错误,但我很乐意听到任何可以证实或驳斥这一点的人。另外,Jesh,你使用安全密钥并将其设置为false的想法很好,但我真的不想要离开这个领域不安全(事实上,我特别不想离开这个领域不安全),在我看来,我不应该这样做。实际上,现在我认为这也可能是安全组件中的一个错误;我是使用 FormHelper在这里创建我的表单 - 所以不应该安全组件能够处理这?
@Miles:你的解决方案也很好 - 谢谢!但它仍然留下了我在上面提出的同样的问题。