質問 > フロント機能 > トランザクションに関して |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
akiR |
投稿日時: 2021/12/13 16:15
対応状況: 解決済
|
新米 登録日: 2021/12/3 居住地: 投稿: 9 |
トランザクションに関して こんな感じで、ループの中でflushしてループの数ぶんインサートしたいのですが1レコードしか登録されません。
※DBではループの最後の要素のみ登録されている。 例えば$quantityが5の場合5レコード登録できるようにしたいのですが 実装方法に関しましてご教示いただけないでしょうか。 よろしくお願いいたします。 for ($i = 0; $i <= $quantity; $i++) { $SerialNumber->setOrderItem($order_item); $SerialNumber->setSeq($i); $this->entityManager->persist($SerialNumber); $this->entityManager->flush($SerialNumber); } |
akiR |
投稿日時: 2021/12/13 20:22
対応状況: −−−
|
新米 登録日: 2021/12/3 居住地: 投稿: 9 |
Re: トランザクションに関して こちら自己解決しました。
インスタンスがDoctrineの管理下にある場合はflushはupdateしてしまうみたいです。そのためfor分の中にインスタンス化処理を入れインスタンスもループするようにしたところ、ループの回数分insertされました。 for ($i = 0; $i <= $quantity; $i++) { $SerialNumber = new SerialNumber();←追加 $SerialNumber->setOrderItem($order_item); $SerialNumber->setSeq($i); $this->entityManager->persist($SerialNumber); $this->entityManager->flush($SerialNumber); } |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |