У меня эти сущности на моем коде.Doctrine SoftDelete OneToOne Отношения
class Review extends BaseEntity {
/** @ORM\OneToOne(targetEntity="Action", mappedBy="review") */
protected $action;
}
class Action extends BaseEntity {
/** @ORM\OneToOne(targetEntity="Review", inversedBy="action") */
protected $review;
}
Как вы можете видеть, это отношения OneToOne между действиями и обзором. Моя проблема заключается в том, что я использую soft-delete для своих объектов, поэтому, когда я удаляю сущность, на самом деле не удаляется, устанавливается только дата удаления. Позже в контрольном журнале мне нужно показать удаленные отзывы, и, конечно же, мне нужна информация от родительского действия. Мой вопрос: мне нужно сделать это отношение OneToMany? или есть лучший подход?
Я думаю, что я не совсем понял ваш вопрос, что отношения с OneToMany или OneToOne связаны с мягким удалением? Какова фактическая проблема между тем или иным? Определение типа отношения зависит от того, что вы хотите сделать с этими объектами и ** NOT MUCH ** с поведением. – Azteca
фактически. Если вы мягко удаляете отношения OneToOne, сторона-владелец все равно сохранит ссылку на удаленный объект, и если вы не замените/не удалите/не очистите этот объект, вы не сможете быть привязаны к новому. Но если вы это сделаете, вы потеряете ссылку на объект владельца и позже не сможете регистрировать изменения. – richardalberto
О, я вижу, то, что я знаю (не так много), вы можете сделать это так ** ** ** предложил, используйте отношения _OneToMany_ и проверяйте, сохраняете ли вы только один, а остальные мягко удалены, так что вы можете история для любого прослушивания. Я попытаюсь опубликовать ответ на проверку. – Azteca