2016-03-01 3 views
1

Я не знаю, почему, но когда я хочу, чтобы вставить что-то:Laravel поставил нуль в created_at и updated_at при вставке новой записи

users::insert([ 
    'first_name' => $first_name, 
    'last_name' => $last_name, 
    'remember_token' => $remember_token, 
]); 

Он просто вставляет NULL в created_at и updated_at столбцов. Я попытался это:

'create_at' => time(), 
'updated_at' => time(), 

'create_at' => '', 
'updated_at' => '', 

'create_at' => TRUE, 
'updated_at' => TRUE, 

Но ни один из них не работал, но только ИСТИНА положить 0000-00-00 00:00:00.

+0

может быть, вы accidentaly набора $ метки времени ложны в вашей модели? – naneri

+0

Спасибо, он должен был работать без указания, но я тоже установил его. –

+0

, так оно и началось? – naneri

ответ

1

Отметка время колонна (created_at и updated_at) будет назначена автоматически, только если вы используете красноречивый образ:

$user = new \App\User; 
$user->first_name = $first_name; 
$user->last_name = $last_name; 
$user->save(); 

При использовании конструктора запросов, вы должны created_at и updated_at значения по себе:

DB::table('users')->insert([ 
    'first_name' => $first_name, 
    'last_name' => $last_name, 
    'created_at' => \Carbon\Carbon::now(), 
    'updated_at' => \Carbon\Carbon::now(), 
]); 

Надеюсь, что это решит вашу проблему.

+0

Нет, я сначала использовал то, что вы набрали, снова это не сработало :( –

1

В модели вы должны добавить этот код,

public $timestamps = true; 

created_at и updated_at будет обновляться автоматически

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