我正在使用带有安全组件的Cakephp v 2.5.1。我有一个配置文件表单,我在用户和项目之间有HABTM关系,用户可以选择0-N项目(基本上是多选项)。
发帖时,帖子会被黑洞化。
以下是FormHelper中的字段(即$ hashParts):
阵 ( [0] => /用户/个人资料 [1] =>一个:8:{I 0,S:15: “Project.Project”; I:1; S:10: “User.alias”; I:2; S:16: “User.division_id”; I:3 ; S:17: “User.geography_id”; I:4; S:13: “User.lastname”; I:5; S:13: “User.level_id”; S:7: “User.id”; S :2: “38”; S:13: “User.username”; S:26: “bobking256@prophecyinc.com”;} [2] => currentpassword |新密码| newpassword2 [3] => Ge08djl2390IOJjl298dj4MNbhzapo8912eadsSTBVD )
以下是发布后安全组件($ hashParts)中的字段: 排列 ( [0] => /用户/个人资料 [1] =>一个:9:{I 0,S:15: “Project.Project”; I:1; S:10: “User.alias”; I:2; S:16: “User.division_id”; I:3 ; S:17: “User.geography_id”; I:4; S:13: “User.lastname”; I:5; S:13: “User.level_id”; I:6; S:11: “多选” ; S:7: “User.id”; S:2: “38”; S:13: “User.username”; S:26: “bobking256@prophecyinc.com”;} [2] => currentpassword |新密码| newpassword2 [3] => Ge08djl2390IOJjl298dj4MNbhzapo8912eadsSTBVD )
查看数组元素[1],帖子中似乎有一个额外的属性(“i:6; s:11; multiselect”;)
我尝试使用以下方法将其从验证中删除:
$ this-> Form-> unlockField('Project.Project')
但它不起作用。它从上面移除了来自数组元素[1]的'Project.Project'但是没有删除“multiselect”(它变成i:5; s:11; multiselect)
如何解决这个问题或者至少从验证中删除它?
感谢。
答案 0 :(得分:0)
我从cakephp IRC那里得到了很多帮助。由于我使用的是twitter bootstrap,我在'class'=>'multiselect'
中加入了$this->Form->input(...);
解决方案来解决此问题,即使用$this->Form->unlockField('multiselect');
解锁此字段,我的帖子验证问题就消失了。
希望将来可以帮助其他人。