脚本宝典收集整理的这篇文章主要介绍了php – Symfony表单域属性empty_data被忽略,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
sqlstatE[23000]: IntegrITy constraint violation: 1048 Column 'shell' cannot be null
因此,文档说如果您不希望使用NULL作为默认值,则可以在文本或选择字段上指定empty_data属性.但是,这对我来说不行.
实体字段(不可空):
/** * @ORM\Column(tyPE="string") */ PRotected $shell = '';
表单生成器(不需要):
->add('shell','choice',array( 'label' => 'Shell','choices' => array('shell' => 'fancy Pants'),'required' => false,'empty_data' => '' ))
我是否误会了这个空数据属性?我在其他地方缺少一些重要的设置吗?推荐的方法是什么?
UPDATE
这个Github ticket解释说这是2012年的一个问题,它还没有被修复.
这意味着每个使用表单构建器的人都被迫将任何不需要的字段置于可空字段中?对于框架来说,这似乎是很有意思的.当默认的”或’0’没有唯一的含义并且我们不需要NULL时,有很多原因我们不想使用NULL.对于许多查询,必须检查两个字段= 0或字段= NULL的存在是一个痛苦.
其他人正在使用更好的解决方案吗?
public function __construct() { $this->shell = 0; }
或者,您可以在设定者中进行处理:
public function setShell($shell) { $this->shell = $shell; if ( !is_numeric($shell) ) { $this->shell = 0; } return $this; }
也许不是最好的做法,但它的作用是没有可以使用的值.
以上是脚本宝典为你收集整理的php – Symfony表单域属性empty_data被忽略全部内容,希望文章能够帮你解决php – Symfony表单域属性empty_data被忽略所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。