2017-02-14 2 views
0

Сценарий довольно просто объяснить на примере:Как я могу удалить объект в Doctrine2?

public function setValue($value) 
{ 
    if ($value == 0) { 
      // DELETE ME 
    } 

    return $this; 
} 

Я, вероятно, буду использовать обходной путь (т.е. удаление объекта после вызова setValue, но я хотел бы, чтобы инкапсулировать этот бизнес логика в рамках метода)

ответ

2

Для этого вам, вероятно, потребуется доступ к EntityManager, которого у вас нет в сущности (и по уважительной причине, как один из многих примеров см. this example of how to get the Manager within an entity anway - это ОЧЕНЬ ПЛОЩАДЬ ПРАКТИКИ) ,

Так что я предлагаю следовать вашему «обходному пути» - чтобы сохранить его от других вещей, я предлагаю использовать Doctrine event system - но это зависит от вашего личного вкуса.

+0

Да, я бы не захотел пойти уродливым путем (плохая практика, о которой вы упоминаете) ... Было бы неплохо иметь некоторую отметку «быть удаленной» на самом объекте, который мог бы быть набор изнутри, хотя ... – Muc

+0

это может быть легко достигнуто с помощью слушателя, проверьте мою ссылку на систему событий – LBA

Смежные вопросы