2015-12-14 2 views
2

Я пытаюсь вставить данные в одну таблицу, моя таблица имеет три столбца, id-auto increment, phoneno, login_date. Я пытаюсь использовать код ниже.Как вставить данные в базу данных в laravel

$input = Request::has('phoneno'); 
$login_history = new LoginHistory; 
$login_history->phoneno=$input; 
$login_history->login_date=date('Y-m-d H:i:s'); 
$login_history->save(); 

, но я получаю следующую ошибку.

SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец 'updated_at' в 'списке поля' (SQL: вставить в login_history (phoneno, login_date, updated_at, created_at) значения (1, 2015-12-14 08: 55:25, 2015-12-14 8:55:25, 2015-12-14 08:55:25))

ответ

2

Вы не created_at и updated_at столбцов в таблице, Eloquent ожидает, что все модели по умолчанию. Либо создать эти столбцы или просто отключить временные метки для этой модели, установив $ временных меток собственности соответственно:

class LoginHistory { 
    protected $timestamps = false; 
} 
2

Это происходит потому, что вы не имеете поле updated_at в таблице базы данных.
Убедитесь, что добавить:

$table->timestamps()

к вашей миграции и повторно перенести базу данных (или обновить таблицу).

Это добавит поля created_at и updated_at.

2

Причина этой ошибки проста. Laravel по умолчанию предполагает, что в вашей таблице есть поля created_at и updated_at. следовательно, метод ->save() пытается сохранить временные метки, как вы можете видеть в запросе.

Если вы не хотите, чтобы они были включены, добавьте public $timestamps = false; в вашу модель.

Смежные вопросы