終了した場合にのみ、テーブルを切り捨て:symfonyの+ Doctrineはforeachの一連のは、私は私のDB 5エンティティで持っているだけでなく
Customer
Location
Machine_1
Machine_2
Machine_3
Customer
が持つOneToMany
関係にあるLocation
(1 Customer
持つことができ、複数のLocations
)、Machine_1
Machine_2
およびMachine_3
はLocation
(Location
の1つは複数のMachines
を持つことができます)との関係にあります。
私はすでにdbに格納されているエンティティのすべてのデータを持っています。 3台のマシンのデータを更新できるAPIサービス(POST)があります。 は、これは私がそれをやっている方法です:
/**
* @Route("/saveData")
* @Method("POST")
**/
public function saveDataAction (Request $request) {
$data = $request->getContent();
$dataDecode = json_decode($data);
if (is_object($dataDecode)) {
foreach ($dataDecode->customer as $customer) {
//get data
foreach ($dataDecode->location as $location) {
//getdata
foreach ($dataDecode->machine_1 as $machine_1) {
//get and set data
}
foreach ($dataDecode->machine_2 as $machine_2) {
//get and set data
}
foreach ($dataDecode->machine_3 as $machine_3) {
//get and set data
}
}
}
私は、新しいデータを挿入する前に、すべての機械テーブルを切り捨てる必要があるが、これはすべてがforeach
ループの内側に細かい行く場合にのみ発生することがあります。
このような何かが、唯一のコードの残りの部分がうまく実行された場合:
if (is_object($dataDecode)) {
$em->createQuery('DELETE FROM AppBundle:Machine_1')->execute();
$em->createQuery('DELETE FROM AppBundle:Machine_2')->execute();
$em->createQuery('DELETE FROM AppBundle:Machine_3')->execute();
.....
}
私はそれをどのように行うことができますか?ありがとう!
をあなたは「foreachのがうまく終了」何を意味するのですか?あなたは何を試しましたか、そしてなぜそれはうまくいかなかったのですか? – yivi
@yivi私はすべてがうまくいくということを意味し、私は何の誤りもありません。データを取得して設定するプロセスがうまく終了することを知る前に、テーブルを切り捨てることは望ましくありません。 – Dygne
何を試しましたか? – yivi