我有一个表格代表RewardModifier
我们数据库中的表。那RewardModifier
hasMany
RewardOption
.
我的表格结构如下(图片):
So, the RewardModifier
页面上可以有很多元素,每个元素有很多RewardOption
items.
问题
问题是,用户可以使用 Javascript 删除此表单的部分,这实际上将其从 DOM 中删除。当他们这样做时,会破坏安全组件,因为 POST 字段与生成页面时提供的令牌不匹配。
现在,我一直在使用unlockedFields
之前处理这个问题:
$this->Security->disabledFields = array(
'PrjRewardModifier.reward_id',
'PrjRewardModifier.title',
'PrjRewardModifier.option_type',
'PrjRewardOption.description',
'PrjRewardOption.modifier',
'PrjRewardOption.amount'
);
我知道disabledFields
已弃用,但我们暂时使用它。
当我调试发布的表单数据时SecurityComponent
,我看到以下内容:
(int) 8 => 'PrjRewardModifier.0.reward_id',
(int) 9 => 'PrjRewardModifier.0.title',
(int) 10 => 'PrjRewardModifier.0.option_type',
(int) 11 => 'PrjRewardModifier.0.PrjRewardOption.0.description',
(int) 12 => 'PrjRewardModifier.0.PrjRewardOption.0.modifier',
(int) 13 => 'PrjRewardModifier.0.PrjRewardOption.0.amount'
我需要知道如何编辑传递给的数据unlockedFields
这样它就可以忽略这些为 hasMany 关系设置键的字段。
Thanks.