2011-11-05 80 views
0

我在这里有一个问题。我有一个运行在symfony 1.0上的网站。我使用symfony管理生成器工具来生成一个界面来编辑数据库中的信息。在编辑页面上,我有一些需要整数值的文本区域保存在数据库中。我遇到的问题是,如果我没有在需要整数数字的文本字段中输入任何内容并点击保存,ZERO的值将保存在数据库中(而不是空值)。请记住,在数据库的结构中,整数保存的列的类型是INT(11)DEFAULT NULL。所以,如果我不输入任何内容,通常应该保存NULL。无法保存INT类型的空值(php,symfony)

有什么想法可能会出错?

+0

看看你的schema.yml文件,并检查表的行为。尽管默认情况下你的数据库结构允许为'null',但你的ORM可能不会,并将其设置为0. –

回答

5

是的,表单字段总是字符串。因此,当您提交它们而没有输入任何内容时,实际上您正在提交''(一个空字符串),并将其转换为0.您应该包含一个简单条件以确保输入不为空,并且如果有输入,请采取适当的操作。

if (empty($_POST['input'])) { $variable_to_pass = null; } 
+0

或者改为将类型更改为字符串 –

相关问题