2016-03-23 17 views
2

私はDoctrineを初めて使用しており、永続性に問題があります&フラッシュ フラッシュを呼び出さなくても、エンティティは自動的にデータベースに保存されます。私はそれが自動的に、私はコードの後に​​死ぬ置くならば、それはデータベースに保存されませんが、私は応答が送り返させたときに、教義2.上記のコードでDoctrineはフラッシュなしでデータベースに保存され続ける

 public function addSource($request, $response, $args) { 
     $apiData = new \App\Entity\Source(); 
     $apiData->setSourceName('dasds'); 
     $apiData->setSourceDesc('jasgd<sg'); 
     $now = new \DateTime("now"); 
     $apiData->setCreated($now); 
     $apiData->setModified($now); 
     $this->sourceResource->entityManager->persist($apiData); 
     //$this->entityManager->flush(); 
     echo 'here';exit; 
     return $response->withJSON($apiData); 
    } 

とAPIのスリムフレームワークを使用しています 節約する。

+0

何かが奇妙です:$ this-> sourceResource-> entityManager-> persist($ apiData); // $ this-> entityManager-> flush(); persist()とflush()は同じemから実行する必要があります。 – quazardous

答えて

2

flush()は、おそらくミドルウェアやindex.phpの終わりにあります。

+0

明示的な終了があるので、flush()は – quazardous

+0

の後に呼び出すことはできません。@quazardous:まさに。 'exit;で、データベース行は作成されません。 'exit'がなければ、それはです。したがって、 'addSource()'が返された後に 'flush()'が起こっていると結論づけます... –

関連する問題