Jak „odblokować” pole w formularzu CakePHP, gdy jest ono częścią stowarzyszenia hasMany

Mam formę, która reprezentuje aRewardModifier tabela w naszej bazie danych. ŻeRewardModifier hasMany RewardOption.

Mój formularz ma taką strukturę (obrazek):

Tak więcRewardModifier może mieć wiele elementów na stronie, każda z wielomaRewardOption przedmiotów.

Problem

Problem polega na tym, że użytkownicy mogą usuwać sekcje tego formularza za pomocą Javascript, który zasadniczo usuwa go z DOM. Gdy to zrobią, przerywa komponent bezpieczeństwa, ponieważ pola POST nie pasują do tokena dostarczonego podczas generowania strony.

Teraz używamunlockedFields poradzić sobie z tym wcześniej:

$this->Security->disabledFields = array(
   'PrjRewardModifier.reward_id',
   'PrjRewardModifier.title',
   'PrjRewardModifier.option_type',
   'PrjRewardOption.description',
   'PrjRewardOption.modifier',
   'PrjRewardOption.amount'
);

wiem todisabledFields jest przestarzałe, ale na razie używamy tego.

Kiedy debuguję opublikowane dane formularza wSecurityComponent, Widzę następujące rzeczy:

(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'

Muszę wiedzieć, jak edytować przekazywane daneunlockedFields tak, że może zignorować te pola, które są wpisane dla relacji ma wiele.

Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion