Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 29 мар 2024, 11:11

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 24 авг 2012, 18:17 
Не в сети
Зеленый

Зарегистрирован: 23 авг 2012, 16:34
Сообщения: 9
Доброго времени суток всем...
Такая проблема:
в модели Users создал дополнительное поле:
Код:
`birthDate` date DEFAULT NULL

Если данных по `birthDate` нет, то хочу записать 'NULL'...
В модели сохраняю данные:
Код:
...
$user->birthDate = ($data['birthDate']) ? $data['birthDate'] : NULL;
$user->save();
...

При проверке, что записано в переменные, вижу что в $data['birthDate'] записано Null (присваиваю в контроллере),
а в $user->birthDate записана пустая строка, т.е. тип переменной строка, а значение <''>...

Код:
$user->birthDate = ($data['birthDate'] && $data['birthDate'] != '') ? $data['birthDate'] : NULL;
echo Debug::vars($data['birthDate'], $user->birthDate);


Делая такой "контрольный" вывод(echo Debug...), вижу следующее:
Код:
NULL
string(0) ""

т.е. значение в $data NULL, а в $user УЖЕ пустая строка ((((

Подскажите почему???
полазил по моделям Users и ORM так и не нашел, где происходит изменение типа...


Последний раз редактировалось bsv 07 сен 2012, 16:49, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 18:29 
Не в сети
Бывалый

Зарегистрирован: 06 авг 2012, 22:39
Сообщения: 91
хм. возможно в бд нужно поставить для поля атрибут NULL ? и вообще в случае нулевого значения ОРМка может присваивать '', правда не уверен


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 авг 2012, 19:18 
Не в сети
Зеленый

Зарегистрирован: 23 авг 2012, 16:34
Сообщения: 9
Rush64 писал(а):
хм. возможно в бд нужно поставить для поля атрибут NULL ? и вообще в случае нулевого значения ОРМка может присваивать '', правда не уверен

Мона пример, как поставить атрибут NULL в БД ???

ОРМка в другой модели, созданной мной, в подобное поле другой таблицы в таком же случае пишет NULL без проблем!!!

Вот мне и не понятно, в чем разница... Где собака порылась...


Последний раз редактировалось bsv 30 авг 2012, 20:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 авг 2012, 16:20 
Не в сети
Бывалый

Зарегистрирован: 06 авг 2012, 22:39
Сообщения: 91
зайди в pma, нажми редактировать поле и поставь галочку null


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 авг 2012, 02:49 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
учите mysql


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2012, 11:24 
Не в сети
Зеленый

Зарегистрирован: 23 авг 2012, 16:34
Сообщения: 9
Sergey писал(а):
учите mysql

читайте полностью ветку, прежде чем УЧИТЬ !!! В первом посте есть определение как задано поле...
(спасибо за совет!)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2012, 11:25 
Не в сети
Зеленый

Зарегистрирован: 23 авг 2012, 16:34
Сообщения: 9
Rush64 писал(а):
зайди в pma, нажми редактировать поле и поставь галочку null

пользуюсь HeidiSQL, но проверил в pma - "галочка" стоит... :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2012, 11:43 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
bsv писал(а):
Sergey писал(а):
учите mysql

читайте полностью ветку, прежде чем УЧИТЬ !!! В первом посте есть определение как задано поле...
(спасибо за совет!)


Это ваше?
Цитата:
Мона пример, как поставить атрибут NULL в БД ???

О чём может быть речь после таких вопросов?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2012, 14:12 
Не в сети
Бывалый

Зарегистрирован: 06 авг 2012, 22:39
Сообщения: 91
ладно еще вариант
$user->birthDate = ($data['birthDate']) ? $data['birthDate'] : NULL;
возможно $data['birthDate'] == '', просто пустое и записывается в базу пустая строка
может так прокатит $user->birthDate = ($data['birthDate'] && $data['birthDate'] != '') ? $data['birthDate'] : NULL;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2012, 17:37 
Не в сети
Зеленый

Зарегистрирован: 23 авг 2012, 16:34
Сообщения: 9
Rush64 писал(а):
...
может так прокатит $user->birthDate = ($data['birthDate'] && $data['birthDate'] != '') ? $data['birthDate'] : NULL;...

в принципе при пустой строке условие проверки <($data['birthDate']) ?...> выдаст все равно ЛОЖЬ ...
проверил и предложенный вариант... все тоже самое как и было.
в модель все равно идет строковое именно пустое значение, которое потом (по типу data) пишется в базу как '0000-00-00'... :?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group