symfony2 学说mongodb odm-嵌套水平太深了()



我对Symfony2和Doctrine2 ODM(MongoDB)有问题。我试图将一个名为"状态"的收藏的对象坚持。这是一个非常简单的对象,绝对没有引用,只有一个称为"名称"的属性。这是我状态文档类的代码。

<?php
namespace SiteBlablaBundleDocument;
use DoctrineODMMongoDBMappingAnnotations as MongoDB;
/**
 * Status
 *
 * @MongoDBDocument(repositoryClass="SiteBlablaBundleRepositoryStatusRepository")
 */
class Status
{
/**
 * @MongoDBId(strategy="AUTO")
 */
protected $id;
/**
 * @MongoDBString
 */
protected $name;
/**
 * Get id
 *
 * @return id $id
 */
public function getId()
{
    return $this->id;
}
/**
 * Set name
 *
 * @param string $name
 * @return self
 */
public function setName($name)
{
    $this->name = $name;
    return $this;
}
/**
 * Get name
 *
 * @return string $name
 */
public function getName()
{
    return $this->name;
}

}

当我尝试从EventListener或从控制器上坚持一个状态对象时,我得到了一个无法修复的问题。

<?php
$status = new Status();
$status->setName('Hello');
$documentManager->persist($status);
$documentManager->flush();

执行flush()方法时,我得到了此错误:

(!)致命错误:嵌套水平太深 - 递归依赖性?在C: wamp www symfony vendor doctrine mongodb lib lib doctrine mongodb cursor.php in 483

此问题最奇怪的部分是我的状态对象存储在数据库中,但此错误已引起导致我的代码崩溃。我只是不知道如何解决...

如果有人遇到了这个问题并知道如何修复它,它将非常有帮助:)

谢谢!

它是php配置错误:您在symfony中使用了太多的深度函数,例如$ this-> function1-> function2 ..... function100

这不是您的代码,而是所有Symfony都是面向对象...

要解决此问题,您应该在php.ini中提高嵌套值限制,然后重新启动apache

谢谢!我看到了问题...我在我的php.ini(Apache而非PHP CLI)内提出了max_input_nesting_level参数,并重新启动了apache,phpinfo()告诉max_input_nesting_level值,但不幸的是,错误仍在提出。..

也许还有另一个要编辑的参数?

谢谢!

相关内容

  • 没有找到相关文章

最新更新