Доктрина Symfony PHP - Как / где включить обратные вызовы DQL? - PullRequest
1 голос
/ 14 октября 2010

http://www.doctrine -project.org / documents / manual / 1_0 / ru / поведение: ядро-поведения: softdelete

Необходимо включить обратные вызовы DQL длядля всех выполненных запросов для выполнения обратных вызовов dql.В поведении SoftDelete они используются для фильтрации операторов выбора, чтобы исключить все записи, для которых установлен флаг delete_at с дополнительным условием WHERE.

Я установил поведение модели в SoftDelete, а когда I $Model->delete() это, фактическая запись в БД изменяется, как и ожидалось.

К сожалению, Doctrine::getTable('Model')->findAll() по-прежнему включает запись, где установлено deleted_at.

Просматривая документацию, я чувствую,это связано с тем, что обратные вызовы DQL не включены в Symfony.Поиск в Google не помог.

Как и где я могу включить обратные вызовы DQL в Symfony?

Спасибо

Ответы [ 2 ]

3 голосов
/ 31 октября 2010

Вы также можете сделать это в файле database.yml

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=localhost;dbname=database
      username: user
      password: password
      attributes:
        use_dql_callbacks: true
2 голосов
/ 14 октября 2010

Хорошо, я нашел это в старой документации для версии 1.2 http://www.symfony -project.org / doctrine / 1_2 / en / 03-Configuration

config / ProjectConfiguration.class.php

 public function configureDoctrine(Doctrine_Manager $manager)
  {
    $manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true);
  }

Не забудьте $ ./symfony cc очистить кеш.

...