Я взял на себя проект, написанный в Laravel 4. Существуют две системы (dev и production), которые в основном должны делать то же самое.Как отлаживать исключение вставки в laravel 4/cartalyst sentry
Когда я пытаюсь зарегистрировать пользователя (в качестве пакета используется cartalyst/sentry), он работает на производстве. В среде dev она не работает, так как есть несколько столбцов, которые определены как не равные нулю, и в коде нет инструкции для ее установки. Поэтому я понимаю, почему это не удается, но я не понимаю, почему он работает на другой машине и какие настройки я могу сделать на dev, чтобы заставить его работать. Без изменения db-столбцов (я хочу понять систему перед внесением таких изменений).
Исключение:
SQLSTATE[HY000]: General error: 1364 Field 'auto_token' doesn't have a default value
(SQL: insert into `users` (`first_name`, `last_name`, `display_name`, `email`,
`password`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?, ?, ?)) (Bindings: array ...
Код для РЕГИСТРИРУЙСЯ нового пользователя:
$user = Sentry::register(array(
'first_name' => Input::get('first_name'),
'last_name' => Input::get('last_name'),
'display_name'=> Input::get('display_name'),
'email' => Input::get('email'),
'password' => Input::get('password'),
));
DB-схемы:
id (unsigned int, not null)
first_name (varchar, not null)
last_name (varchar, not null)
display_name (varchar, not null)
email (varchar, not null)
password (varchar, not null)
auto_token (varchar, not null)
... more columns like auto_token
Prod: MySQ L 5.5.42 - PHP 5.4.30 - работает на Linux
Dev: MySQL 5.6.21 - PHP 5.4.30 - работает на Windows,
Я знаю, что запрос не должен успешно работать в первую очередь, схема базы данных в целом ошибочна. Я хотел бы узнать, что вызывает это и как решить эту проблему.
Где я застрял, почему на одной системе это работает, а с другой нет. Кто-нибудь знает направление?
Замечательный, 1 ответ - ударил его точно. Спасибо, иногда мне интересно, как на планете кто-то может знать эти вещи ... – hogan
Добро пожаловать. Ничего волшебного, потому что у меня была такая же проблема много раз: :) Теперь вы также можете помочь другим людям, когда у них есть аналогичная проблема. –