刷新無效:在重置Doctrine管理器後的問題
<p>我的資料有錯誤,我收到錯誤<code>out of range on a integer column</code> ,我嘗試阻止<code>關閉實體管理器</code> 繼續工作,為此我<code>reset manager</code> in exception</p >
<pre class="brush:php;toolbar:false;">public function renewDeliveryTime($delayReport) : void
{
try {
$this->delayReportRepository->updateRenewedDeliveryTimeAt($delayReport, 50000000);
}catch (\Exception $exception){
// out of range error
$this->managerRegistry->resetManager();
}
}
public function updateRenewedDeliveryTimeAt($delayReport,$delayDuration)
{
/*** @var DelayReport $delayReport*/
$delayReport->setDelayDuration($delayDuration);
$delayReport->setStatus(DelayReport::STATUS['DONE']);
$this->getEntityManager()->flush();
}</pre>
<p>問題是,我在我的資料中遇到了一個錯誤,我收到了錯誤訊息<code>out of range on a integer column</code>,我試圖阻止<code>closed entity manager< /code>繼續工作,並為此目的在異常中<code>reset manager</code></p>
<pre class="brush:php;toolbar:false;">public function enqueue($delayReport) : void
{
$this->pushInQueueReport($delayReport);
$this->delayReportRepository->updateStatus($delayReport, DelayReport::STATUS['IN_QUEUE']);
}
public function updateStatus($delayReport, $status)
{
/*** @var DelayReport $delayReport*/
$delayReport->setStatus($status);
$this->getEntityManager()->flush();
}</pre>
<p>問題是,在我有另一個物件和幾乎相同的資料庫操作之後,似乎<code>$this->getEntityManager()->flush()</code>不再起作用,資料庫中什麼事也沒有發生。這與<code>$this->managerRegistry->resetManager()</code>有關</p>
<p>這個問題的解決方案是什麼? </p>