【发布时间】:2017-07-21 07:42:32
【问题描述】:
除了 Symfony 3.2 和 Doctrine 2.5.6 之外,我还在使用 Gedmo 扩展,我遇到了一个问题。我不能让 Gedmo\Blameable 和 UniqueEntity 约束一起工作。事实上,被指责的字段在验证时仍然为空。有什么方法可以使它工作或可能的解决方法?
这是我的实体
/**
* @UniqueEntity(
* fields={"author", "question"},
* errorPath="question",
* message="This author already has an answer for that Question"
* )
* @ORM\Entity
*/
class TextAnswer
{
/**
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* @Gedmo\Blameable(on="create")
*/
private $author;
/**
* @Assert\NotNull()
* @ORM\ManyToOne(targetEntity="Question", inversedBy="textAnswers")
* @ORM\JoinColumn(name="question_id", referencedColumnName="id")
*/
private $question;
}
谢谢
编辑:解决方案
我没有手动设置用户(删除 Gedmo\Blameable 兴趣),而是创建了自己的实体验证器。 我将原则和令牌存储作为参数提供给它,以便它可以在 db 上进行查询以验证我与当前连接的用户的标准(稍后将由 Gedmo\Blameable 使用)。
【问题讨论】:
-
一开始以为这是外语UniqueEntity Gedmo Blameable
标签: php validation doctrine symfony