невозможно сохранить нулевые значения для типа INT (php, symfony) - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть вопрос здесь.У меня есть сайт, работающий на Symfony 1.0.Я использовал инструмент администратора Symfony для генерации интерфейса для редактирования информации в базе данных.На странице редактирования у меня есть несколько текстовых полей, которые требуют целочисленных значений для сохранения в базе данных.Проблема, с которой я сталкиваюсь, состоит в том, что, если я не помещаю в текстовые поля ничего, что требует целых чисел, и нажимаю SAVE, значение ZERO сохраняется в базе данных (вместо нуля).Помните, что в структуре базы данных тип столбцов, в которых сохраняются целые числа, имеет тип INT (11) DEFAULT NULL.Поэтому, как правило, NULL должен быть сохранен, если я ничего не введу.

Любая идея, что может пойти не так, пожалуйста?

1 Ответ

5 голосов
/ 05 ноября 2011

Да, поля формы всегда являются строками.Поэтому, когда вы отправляете их без ввода чего-либо, вы фактически отправляете '' (пустую строку), которая переводится в 0. Вы должны включить простое условие, чтобы убедиться, что ввод не пустой, и предпринять соответствующие действия, если это произойдет.

if (empty($_POST['input'])) { $variable_to_pass = null; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...