3

「User」と「UserImage」の 2 つのモデルを使用しています。複数の行を user_images テーブルに保存する場所です。UserImage のビューは以下のとおりです。

echo $this->Form->input('UserImage.0.photo');
echo $this->Form->input('UserImage.1.photo');
echo $this->Form->input('user_id');
echo $this->Form->end(__('Submit'));

次に、複数の行を保存する方法..

4

4 に答える 4

3

より多くのモデルが含まれる場合は、各フィールドのモデルを指定する必要があります。また、レコードごとに関連フィールド (user_id) を指定する必要があります。

これを試して:

echo $this->Form->input('UserImage.0.user_id');
echo $this->Form->input('UserImage.1.user_id');

さらに、これを使用して複数のレコードと複数のモデルを保存します。

$this->UserImage->saveAll($this->request->data);
于 2012-05-08T09:55:24.470 に答える
1

Cakephp 2.x のドキュメントから:

単一モデルの複数のレコードを保存するには、$data を次のように数値でインデックス付けされたレコードの配列にする必要があります。

    $data = array(
        array('title' => 'title 1'),
        array('title' => 'title 2'),
    );
$this->saveMany($data);

Article キーを含む通常の $data の代わりに数値インデックスを渡していることに注意してください。同じモデルの複数のレコードを保存する場合、レコード配列はモデル キーなしで数値的にインデックス付けする必要があります。

次の形式のデータを使用することもできます。

    $data = array(
        array('Article' => array('title' => 'title 1')),
        array('Article' => array('title' => 'title 2')),
    );
  $this->saveMany($data);

私は最初のものを試しましたが、うまくいきました。

HTH。

于 2016-06-16T10:54:06.277 に答える
1

CakePHP のドキュメントを参照してください saveAll() というメソッドがあります Cake PHP Saving Your Data

于 2012-05-01T10:54:42.820 に答える
0

この 1 つの saveMany() を使用して、各画像を新しいレコードとして挿入できます。私は自分の問題を解決するために同じものを使用しました。paul.agoの回答ではすべて問題ないように見えますが、 saveAll() を saveMany() に変更するだけです

$this->UserImage->saveMany($this->request->data);
于 2015-03-30T09:05:11.433 に答える