symfony 如何给主义实体增加只读属性?

wtzytmuj  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(129)

我实体:

class MyEntity {

    /**
     * @var string
     *
     * @ORM\Column(name="hash", type="string", length=128, unique=true, nullable=false)
     */
    protected $hash;

}

hash -是由数据库自动生成的列。当我试图在数据库中创建新记录时,我得到
列“hash”中的空值违反了非空约束条件
是否可以将哈希设置为只读?或者禁止插入?

ukxgm1gy

ukxgm1gy1#

在实体构造函数中设置值,不要创建setter。这将使您的属性只能从实体外部读取。

lmvvr0a8

lmvvr0a82#

您可以搭配@Column注解使用insertableupdatable属性,将属性标示为只读:

class MyEntity {

    /**
     * @var string
     *
     * @ORM\Column(name="hash", type="string", insertable=false, updatable=false, length=128, unique=true, nullable=false)
     */
    protected $hash;

}

相关问题