2016-03-23 2 views
2

Я новичок в доктрине и имею проблему с сохранением & flush Сущность автоматически сохраняется в базе данных, даже если я не вызываю флеш. Я использую рамки Стройный для ИПН с доктриной 2.Доктрина сохраняется в базе данных без флеша

 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); 
    } 

В коде выше, если я положил умереть после того, как код, то он не сохраняет в базе данных, но когда я позволяю ответ отправляется обратно, он автоматически спасает.

+0

что-то нечетное: $ this-> sourceResource-> entityManager-> persist ($ apiData); // $ this-> entityManager-> заподлицо(); persist() и flush() должны выполняться с одних и тех же. – quazardous

ответ

2

flush() вызывается в другом месте - возможно, в промежуточном программном обеспечении или, возможно, в конце index.php.

+0

, так как есть явный выход, нет способа сброса() можно вызвать после – quazardous

+0

@quazardous: Точно. С «exit» строка базы данных не создается. Без «выхода» это так. Поэтому я пришел к выводу, что существует 'flush()' происходит после того, как 'addSource()' возвращает ... –

Смежные вопросы