2 つの入力テキスト フィールドを持つフォームがあります。
<input id="ModelName_test_0" name="ModelName[test][0]" type="text">
<input id="ModelName_test_1" name="ModelName[test][1]" type="text">
これらの入力フィールドは、次のコマンドで生成されます。
<?php echo $form->textField($model,'test[0]'); ?>
<?php echo $form->textField($model,'test[1]'); ?>
ここで、フォームを送信すると、POST リクエストに値が表示されます。ただし、フォームの送信が失敗すると、値を入力フィールドに戻すことができません。モデルを印刷すると、$test の値がないことがわかります。- これは $test がフォームの配列だからですか?
検証後でも、すべての値が変数に割り当てられます。
if($model->validate()) {
echo "<pre>";
print_r($_POST);
return;
}
これは以下を返します:
[ModelName] => Array
(
[test] => Array
(
[0] => myFirstInputField
[1] => mySecondInputField
)
)
したがって、値は POST にありますが、検証に失敗した後、それらはなくなり、空の変数が取得されます。
[ModelName] => Array
(
[test] =>
)
変数testは、検証規則で安全であると宣言されています。
私が達成したいのは
、検証が失敗した場合、入力された値を適切な入力テキストフィールドに戻すことです。
正しい方向へのポインタは役に立ちます:)