Shi*_*n S 3 forms symfony doctrine-orm
当我发送一个带有空白字段的表单时,我收到错误SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'image' cannot be null.我发现修复它的唯一方法是在实体文件中创建一个默认值:
* @ORM\Column(type="string", length=100)
*/
protected $image="";
Run Code Online (Sandbox Code Playgroud)
并像这样更改setter:
public function setImage($image){
if(!isset($image)) {
//its really empty but it works only in this way
}
else {
$this->image = $image;
}
Run Code Online (Sandbox Code Playgroud)
我认为这是一个很大的问题...这有什么解释吗?还有另一种方法吗?}
如果image不需要该字段,则可以将其设置为nullableDoctrine将知道该字段并将该列设置为可为空.
这样,不会违反约束,因为该字段可以为null.要使字段可以使用Doctrine注释构建为空,只需添加nullable = true如下ORM\Column定义:
@ORM\Column(type="string", length=100, nullable=true)
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有列都是nullable=false这样,当尝试在其中保留空值时,它们将抛出一个constaint验证异常.
问候,
马特
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |