イベントと結果の 2 つのコントローラーがあります。イベントには多くの結果があり、結果はイベントに属します。問題なく保存できますが、編集するときは、フォームのイベント部分の情報しか取得できず、自動的に入力されます。
次のような結果フォーム情報を作成します。
$option_number = 5;
for ($i = 0; $i < $option_number; $i++) {
echo $this->Form->select("Result.{$i}.object_id", $qual_options, array('empty' => false, 'class' => 'result-name'));
echo $this->Form->hidden("Result.{$i}.id");
echo $this->Form->hidden("Result.{$i}.type", array('value' => 'qual'));
echo $this->Form->hidden("Result.{$i}.action", array('value' => 'add')); ?>
}
バックエンドで、自動魔法の人口を取得するためにこれを行っているとき:
if ($this->request->is('get')) {
$this->request->data = $this->Event->findById($id);
}
問題なく動作しますが、結果を表示する方法がわかりません。私は多くのことを試しましたが、最も可能性が高いのは次のとおりです。
$this->request->data['Result'] = $this->Result->findAllByEventId($id);
これで、次のようなデータ構造になります。
[Result] => Array
(
[0] => Array
(
[Result] => Array
(
[id] => 1
[object_id] => 1
[type] => qual
[action] => add
[amt] => 10
[event_id] => 1
)
)
[1] => Array
(
[Result] => Array
(
[id] => 2
[object_id] => 2
[type] => qual
[action] => add
[amt] => 1
[event_id] => 1
)
)
... etc.
)
)
これは間違いなく怪しく見えますが、それを操作して動作させることができないようです。
更新これについて言及する必要がありました。これは私のデータを保存したときの様子です。これを真似したいと思います!
[Result] => Array
(
[0] => Array
(
[object_id] => 1
[type] => qual
[action] => add
[amt] => 0
[event_id] => 3
)
[1] => Array
(
[object_id] => 1
[type] => qual
[action] => add
[amt] => 1
[event_id] => 3
)
後の各数字キーには情報が含まれていることがわかります。代わりに、私の数値キーには Result という名前の配列も含まれていますが、それを適切に消す方法がわかりません! :} いつでもループして、CakePHP が望む形式でビルドできますが、適切に実行したいと考えています。上記の 1 行だけを変更する必要がありますが、アイデアが尽きてしまいました。