微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony 5.3.1 模型字段对当前用户的默认值

如何解决Symfony 5.3.1 模型字段对当前用户的默认值

使用 Symfony 5.3.1(和 API 平台),我已经实现了安全性并生成一个认的用户模型。现在,当有人发布文章时,我希望关联 User 对象。

我在文章模型的构造函数中尝试过:

    /* src/Entity/Article.PHP */
    public function __construct()
    {
        $this->submittedBy = $this->getUser();
        // Attempted to call an undefined method named \"getUser\" of class \"App\\Entity\\Article\
    }

但看起来 $this->getUser() 仅对控制器可用。

请问在哪里可以将其设置为新文章用户值?

解决方法

有几种方法可以做到这一点。最简单的是在构造 Article 对象时,注入用户。

/* src/Entity/Article.php */
public function __construct($user)
{
    $this->submittedBy = $user;
}

然后,无论您做什么 new Article();(可能在您的控制器中),您都需要将其更改为 `new Article($this->getUser());

有些项目可以通过听众等为您完成所有这些工作,例如 Blameable extension here

但在您了解基础知识之前,我不建议您继续。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。