Я создал (а) просто users
таблицу с id
, name
и еще несколько полей в моем Laravel 4.2. В моем контроллере, я пытаюсь сохранить пользовательский ввод в качестве новой записи пользователя:Eloquent ORM создает плохой ответ
$user = new User();
$user->fill($input);
$user->fullname = $input['firstname'] . ' ' . $input['lastname'];
$user->save();
Система выдает ошибку MySQL, потому что ни один из строковых значений не указаны.
E.g.
INSERT INTO users (name, ...) VALUES (John, ...)
Зачем это не приводить значение?
Спасибо.
EDIT:
Я все обязательные поля устанавливается в заполняемые в моей модели пользователя:
protected $fillable = array('firstname', 'lastname', 'fullname', 'email', 'username', 'birthday', 'gender', 'country', 'city', 'signature', 'confirmed', 'approved');
А вот полное сообщение об ошибке:
Осветите \ Database \ QueryException (HY000)
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'US' for column 'country' at row 1 (SQL: insert into `users` (`firstname`, `lastname`, `email`, `username`, `birthday`, `gender`, `country`, `city`, `signature`, `fullname`, `updated_at`, `created_at`) values (John, Watson, [email protected], admin, 11/08/2014, male, US, New York, I am the main admin., John Watson, 2014-11-08 17:02:16, 2014-11-08 17:02:16))
EDIT AGAIN:
Цитата не проблема. Реальная ценность - проблема. Он ожидает целое число, и я предоставляю строку. Извините за ложную тревогу. Благодарю.
Вы уверены, что это проблема? Опубликуйте сообщение об ошибке, которое вы получаете ... и убедитесь, что ваши столбцы настроены на 'fillable' на' user' model? – damiani
Да, я уверен. Я добавил полное сообщение об ошибке в исходное сообщение. – akanevsky
Ох. Теперь я вижу, что это не совсем ошибка, о которой я думал. Сожалею. Спасибо. – akanevsky