私はちょうどCakePHPによる始めている私とそう裸:) ...CakePHPの:動的なフォームフィールド
私はすべてのフィールドを持つフォームを持っているが、データベーステーブル「フィールド名」からダイナミックに引か:
ID | FieldName
--------------
11 | username
22 | password
33 | Address
44 | etc
を
これは単なる例であり、フォームはより複雑です。
私は、フォームフィールドがモデルテーブルと1:1で一致する場合、Saveメソッドがユーザーであり、新しい行が適切なセルにすべての値で作成されることをphp docで知りました。 しかし、私のサンプルフォームでは、すべてのフィールド値が、次の構造を持つテーブル 'FieldValues'に複数の行に1つずつ入力する必要があります。
ID | FieldId | Value | DataSet
---------------------------------------------
1 | 11 | 'value for username' | 1
2 | 22 | 'value for password' | 1
3 | 33 | 'value for address' | 1
フィールド識別子= FK Fieldnames.ID
に私は、「古典的な」
foreach field -> $sql = "sql insert query" -> $this->query($sql)'
を用いた方法でこれを行うことができた私は思っていた私は、「魔法を使うことができています"この課題を解決するためのケーキ。 2番目の質問:「魔法」が可能な場合、2番目のパラメータを追加して各データセットに新しいデータセット値を設定するにはどうすればよいですか?
おかげで、 ヴラド
P.S.これはフォームビルダアプリケーションであり、フィールドは動的でなければならず、静的なフォーム実装(テーブルの列1:1のフィールド名をハードコード)を使用することはできません。フィールド名とナンバーは、なぜ私がデータベースのために引き出しているのかによって異なります。
// FieldsController
$this->Field->saveFields($this->request->data);
:あなたのFieldsController追加アクションであなたはこの関数を呼び出すことができ
// Field model
public function saveFields($data) {
foreach($data as $field) {
$this->save($field);
}
}
:
ありがとう、私はこのアイデアを試してみます。 –