Как отключить Doctrine 1.2 ATTR_CASCADE_SAVES в database.yml? - PullRequest
0 голосов
/ 21 октября 2011

Я использую Symfony 1.4 с Doctrine 1.2, и у меня есть следующие database.yml:

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

У меня сложилось впечатление, что использование вышеупомянутого установит для ATTR_CASCADE_SAVES в Doctrine значение false, но столкнувшись с некоторыми проблемами с освобождением объектов, я замечаю, что на самом деле он остается true.

Var_dumping следующее в любом файле действия:

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

... даетя (bool)true.Простота, установив его в false с setAttribute(), исправляет это, но я не хочу вызывать это в нескольких местах в моем коде.Кстати, установка false устраняет проблемы с освобождением определенных объектов после сохранения.

Может кто-нибудь посоветовать мне правильный синтаксис database.yml для отключения каскадных сохранений, или я смотрю на этокак-то не так?Кажется, я не могу найти ничего полезного через Google.

Заранее спасибо.

1 Ответ

1 голос
/ 21 октября 2011

Мне кажется правильным - но я делаю вещи немного по-другому .... Создайте новую функцию в вашем файле config/ProjectConfiguration.class.php ->

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

, вам нужно будет изменить имя функции насопоставьте имя вашего соединения ... (только затем завершите часть "Доктрина")

...