gpt4 book ai didi

Symfony2 Doctrine2 超出内存限制,允许的内存大小为 1073741824 字节耗尽

转载 作者:行者123 更新时间:2023-12-02 04:46:46 37 4
gpt4 key购买 nike

我有一个帖子的关系数据库。

发布表<-- OneToMany

后猫表<-- ManyToOne

分类表<-- OneToMany

如果我使用 Doctrine @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;

}

Controller

$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))

结果....白屏...我也尝试过返回转储到 Twig 模板中的结果。

您认为可以跳过 Doctrine 关系映射并只在实体存储库中编写连接吗?

最佳答案

感谢@Cerad,问题已经解决。

问题是我在 PHP 中执行 print_r() 或在 twig 模板中执行 {{ dump() }}。这些函数不喜欢实体或显示大型数组/对象。

现在我只是调用我想要的返回值的哪些部分,而不是转储整个数据。而且效果很好!

编辑:

这适用于转储数据

\Doctrine\Common\Util\Debug::dump($object);

关于Symfony2 Doctrine2 超出内存限制,允许的内存大小为 1073741824 字节耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657873/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com