Php 如果属性的字符串值为空,如何使属性拒绝实体?

Php 如果属性的字符串值为空,如何使属性拒绝实体?,php,mysql,symfony,doctrine,Php,Mysql,Symfony,Doctrine,我试图通过条令阻止空字符串插入MySQL数据库 我这样做: /** * @ORM\Column(type="string", length=255) * @Assert\NotBlank() ( or NotNull() ) */ private $name; 在插入空的输入post值时,我仍然没有收到错误,您需要实现。Assert注释由Validator组件使用,但不由条令使用 例如,您可以这样做: /** *@实体 *@HasLifecycleCallbacks

我试图通过条令阻止空字符串插入MySQL数据库

我这样做:

 /**
   * @ORM\Column(type="string", length=255)
   * @Assert\NotBlank() ( or NotNull() )
   */
    private $name;
在插入空的输入post值时,我仍然没有收到错误,

您需要实现。
Assert
注释由
Validator
组件使用,但不由条令使用

例如,您可以这样做:

/**
*@实体
*@HasLifecycleCallbacks
*/
阶级事务
{
/**
*@ORM\Column(type=“string”,length=255,nullable=false)
*/
私人$name;
/**
*@PrePersist@PreUpdate
*/
公共函数assertNotEmptyName(){
如果(空($this->name)){
用非异常()抛出新事物;
}
}
}
在创建或更新
对象之前,将调用
实体
资产notemptyname()
,如果
名称
为空,将引发异常

此外,我还添加了
nullable=false
,因此在数据库级别很明显,为了提高数据完整性,名称不能为
null

(带有非异常的
东西也必须在逻辑上定义)