バージョン選択

フォーラム

メニュー

オンライン状況

51 人のユーザが現在オンラインです。 (41 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 50
neha9873 もっと...

サイト内検索

質問 > フロント機能 > トランザクションに関して

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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);
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,699名です
総投稿数は109,943件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1283
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.