如何在databases.yml中关闭Doctrine 1.2 ATTR_CASCADE_SAVES?

时间:2011-10-21 10:01:22

标签: database symfony1 doctrine cascade

我正在使用Symfony 1.4和Doctrine 1.2,我有以下数据库.yml:

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      xxxxx
      username: xxxxx
      password: xxxxx
      attributes:
         cascade_saves: false

我的印象是,使用上述内容会将Doctrine中的ATTR_CASCADE_SAVES设置为false,但遇到了一些释放对象的问题,我注意到它实际上仍然是true

在任何操作文件中Var_dumping以下内容:

Doctrine_Manager::getInstance()->getAttribute(Doctrine::ATTR_CASCADE_SAVES);

...给了我(bool)true。使用setAttribute()明确将其设置为false会修复它,但我不想在我的代码中的几个地方调用它。顺便说一句,将其设置为false可以解决我在保存后释放某些对象时遇到的问题。

任何人都可以告诉我有关禁用级联保存的正确databases.yml语法,或者我是否正在查看这个错误?我似乎无法通过谷歌找到任何有用的东西。

提前致谢。

1 个答案:

答案 0 :(得分:1)

对我来说是正确的 - 但我做的事情略有不同......在config/ProjectConfiguration.class.php文件中创建新功能 - >

public function configureDoctrineConnectionDoctrine(Doctrine_Connection $connection)
{
  $connection->setAttribute('CASCADE_SAVES', false);
}

您需要更改功能名称以匹配您的连接名称...(然后结束“Doctrine”部分)