私のMVCでは、配列を使用してモデルからのデータをフォームに入力します。私はPDOを使用して連想配列をフェッチしています。これにより、ビューにデータを入力するために使用できるフィールドの配列が得られます。
ユーザーが新しいレコードを要求すると、配列は空になり、使用する前にすべての変数の値を明示的にテストしない限り、スクリプトは存在しないインデックスでフォールオーバーします。
以前の私のアプローチは、新しいレコードの場合、空の配列を設定してこれをビューに渡すことでした。これは単純なフォームには問題ありませんが、ビューで10〜15個の変数を使用する必要がある場合、これは少し面倒です。
これを行うための好ましい方法は何ですか?ビューで使用する前にすべてのフィールドをテストする必要がありますか、それとも空の配列を作成する必要があります。もしそうなら、空のアレイをコントローラーまたはモデルに作成する必要がありますか?
例として、ユーザーが既存のレコードを編集したい場合、コントローラーはID番号をモデルに渡し、レコードの現在の値の配列を要求します。
コントローラはこの配列をビューに渡し、ビューは値を編集用のフォームに組み込みます。
対照的に、コントローラーは新しいレコードの要求を受信すると、モデルが新しいため、モデルにレコードを要求しても意味がないことを認識します。渡された配列にはフォームに必要なキーが含まれていないため、ビューを呼び出すことはできません。
これに対する私の現在のアプローチは、空のキーの配列を初期化することですが、モデルが変更された場合に維持する必要があるため、これは退屈で時間の浪費であり、エラーが発生しやすいようです。
例えば:
$this->view->class['Code']=NULL;
$this->view->class['Description']=NULL;
$this->view->class['Image']=NULL;
$this->view->class['Judge']=NULL;
$this->view->class['Entries']=NULL;
$this->view->class['Absentees']=NULL;
等
より良い方法が必要ですか?