cakephp安全组件HABTM(多选)

时间:2014-07-11 17:04:35

标签: security cakephp components has-and-belongs-to-many

我正在使用带有安全组件的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)

如何解决这个问题或者至少从验证中删除它?

感谢。

1 个答案:

答案 0 :(得分:0)

我从cakephp IRC那里得到了很多帮助。由于我使用的是twitter bootstrap,我在'class'=>'multiselect'中加入了$this->Form->input(...);解决方案来解决此问题,即使用$this->Form->unlockField('multiselect');解锁此字段,我的帖子验证问题就消失了。

希望将来可以帮助其他人。