我有一個關係數據庫的職位。Symfony2 Doctrine2超出內存限制,允許的內存大小1073741824字節用盡
後表< - 一對多
郵政貓表< - 多對一
分類表< - 一對多
如果我使用學說@ORM使用聯接表,在實體註解。我得到一個白色的屏幕,並在錯誤日誌顯示錯誤:
emergency.EMERGENCY: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 1052508160 bytes) {"type":1,"file":"/[PATH TO SYMFONY]/vendor/twig/twig/lib/Twig/Extension/Debug.php","line":66}
我都增加了內存限制了幾次,從64M到1024M。
是否有其他人發現此問題?我認爲執行一個內存Gig的文件並不好。
如果我使用查詢生成器編寫查詢,我會得到我期望的結果。我認爲如果我可以讓Doctrine關係映射工作,這會更好。有沒有人對此有看法?
我想就此事提供一些建議。
謝謝提前。
喬
------------編輯迴應評論------------------------ ---------------
感謝您的評論@Cerad。數據庫中只有大約10行。另外我在app_dev.php。 這裏有一些摘錄形成我的文件。
交表
class Post
{
//...^table collumns
/**
* @ORM\OneToMany(targetEntity="PostCats", mappedBy="Post")
*/
protected $PostCats;
public function __construct()
{
$this->PostCats = new ArrayCollection();
}
}
貓後加入表。
class PostCats
{
//...^table collumns
/**
* @ORM\ManyToOne(targetEntity="Post", inversedBy="PostCats")
* @ORM\JoinColumn(name="postid", referencedColumnName="id")
*/
protected $Post;
}
控制器
$posts = $this->getDoctrine()
->getRepository('comPostBundle:Post')
->find(7);
if (!$posts) {
throw $this->createNotFoundException(
'No product found for id '.$posts
);
}
return new Response(print_r($posts))
結果....白屏... 我也試圖返回倒入一個模板樹枝的結果。
您認爲可以跳過Doctrine關係映射並只在實體存儲庫中寫入連接嗎?
如果你碰巧被處理的記錄幾萬,那麼你可能會遇到內存限制。您的控制器中的某處可能存在無限循環。考慮發佈您的查詢代碼和後續處理。更好的是,發出命令並嘗試將問題隔離到幾行代碼中。並在開發中使用開發模式。 – Cerad
我已經編輯了我的文章並更新了您的評論,謝謝。 – Joe
這是一個禁忌和你的問題的原因:(print_r($ posts))print_r不能很好地理解實體,它會導致無限循環。 – Cerad