Php 如果属性的字符串值为空,如何使属性拒绝实体?
我试图通过条令阻止空字符串插入MySQL数据库 我这样做: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
/**
* @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
(带有非异常的东西也必须在逻辑上定义)