在User实体类的注解中,我有:
@Gedmo\SoftDeleteable(fieldName="deletedAt", hardDelete=false)
稍后在代码中:
/**
* @var \DateTime
* @ORM\Column(type="datetime", nullable=true)
*/
protected $deletedAt;
软删除工作正常,但我想修改,使软删除的用户仍然可以访问,例如与$message->getSentBy()
。因为用户的外键是在另一个表。
在类Message中,我有字段:
/**
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="locked_by", referencedColumnName="id")
*/
private $sentBy;
现在由于软删除,无论常规活动用户希望看到软删除用户发送的消息**我得到一个错误无效的用户(用户实体未找到)。
有没有什么方法可以修改软删除,使它在其他外键使用该字段的地方是可选择的?或者可以在select语句中使用。
我在PHP 7.4上使用Symfony 5.4
1条答案
按热度按时间wooyq4lh1#
当您需要访问“已删除”的实体时,只需禁用过滤器:
请参阅https://github.com/doctrine-extensions/DoctrineExtensions/blob/main/doc/softdeleteable.md#usage