hasAndBelongsToMany(HABTM)のデータについて、Formヘルパーから送信されるデータとFormヘルパーが認識するデータが違う。
ので、save失敗時にチェックボックスのチェック状態を維持するには、コントローラ内で変換が必要?
【Formヘルパーから送信されるデータ】
array(
‘Model’ => array(
‘field’ => ‘value’
)
‘Habtm’ => array(
‘Habtm’ => array(
(int) 0 => ‘3’,
(int) 1 => ’12’
)
)
)
【Formヘルパーが認識するデータ】
array(
‘Model’ => array(
‘field’ => ‘value’
)
‘Habtm’ => array(
(int) 0 => array(
‘id’ => (int) 3
),
(int) 1 => array(
‘id’ => (int) 12
)
)
)
hasAndBelongsToMany(HABTM)のデータについて、Formヘルパーから送信されるデータとFormヘルパーが認識するデータが違う。
ので、save失敗時にチェックボックスのチェック状態を維持するには、コントローラ内で変換が必要?
【Formヘルパーから送信されるデータ】
array(
‘Model’ => array(
‘field’ => ‘value’
)
‘Habtm’ => array(
‘Habtm’ => array(
(int) 0 => ‘3’,
(int) 1 => ’12’
)
)
)
【Formヘルパーが認識するデータ】
array(
‘Model’ => array(
‘field’ => ‘value’
)
‘Habtm’ => array(
(int) 0 => array(
‘id’ => (int) 3
),
(int) 1 => array(
‘id’ => (int) 12
)
)
)
// ビュー $this->Form->input('Habtm', ['multiple' => 'checkbox']); // コントローラ if (isset($this->request->data['Habtm']['Habtm'][0])) { $this->request->data['Habtm'] = array_map(function ($id) { return ['id' => (int)$id]; }, $this->request->data['Habtm']['Habtm']); }