Итак, есть форма и необязательные поля, например, «first_name». Когда я покидаю это поле пустым, у меня возникла ошибка: «Столбец« first_name »не может быть« null », потому что на самом деле он не может. Но почему Doctrine преобразует пустую строку в NULL?Doctrine/Symfony «переводит» пустую строку в NULL
Но у меня есть на вопросы относительно этого:
Возможно ли это, чтобы вывести его из строя?
Что вы думаете об этом? До сих пор я привык к тому, что, когда поле формы пустое, я просто ввел пустую строку. Не NULL o_O Но ... кто-то сказал мне, что это принцип, которому мы должны следовать. Для меня, однако, NULL означает «нет значения», а «(пустая строка) означает что-то другое -« есть значение, но оно пусто ». Как вы думаете?
p.s. Я использую MySql, если это имеет значение.
редактировать:
есть аналогичный вопрос:
Symfony2 forms interpret blank strings as nulls но, возможно, это новое решение в 2016 г.?
Единственное решение, которое работа является одним из принятого ответа:
Или otherway, когда у вас есть функция setRecap вы можете проверить, если пустой или не установлен и установить значение, которое вы ожидаете.
public function setRecap($recap) {
if(!isset($recap)) {
$this->recap = ''
} else {
$this->recap = $recap;
}
}
Но у меня есть много таких полей, и это кажется излишним для меня, там должен быть более простым решением.
p.s. Я не пробовал ответить Томасу Деко ниже принятого ответа, потому что это кажется мне взломанным.
Это мнение, по крайней мере спорно, другие люди имеют сильные чувства против использования NULLs в дБ, например: http://www.databasedesign-resource.com/null-values-in-a-database.html, но вы могут найти и другие примеры. –
@ Zephyr Ну, да, это был не очень хороший пример, но бывают случаи, когда я хочу сказать «у нас нет этой информации» == NULL в отличие от «у нас есть эта информация, но она пуста» == '' (пустая строка). Но +1, потому что в случае «первого имени» вы на 100% правы. Пример, когда я не хочу, чтобы NULL был адресом, как в: Flat 104/B 24, Roberts Street - это когда кто-то живет в квартире, но если у него/нее нет номера дома. И я хочу, чтобы «плоский» столбец был пустой строкой (у нас есть эта информация), а не NULL, что всегда означало «у нас нет этой информации» для меня. –
@ElzoValugi: спасибо за ссылку! –