Laravel 在插入新记录时将 null 放入 created_at 和 updated_at

Ary*_*iri 4 null laravel

我不知道为什么,但是当我想插入一些东西时:

users::insert([
    'first_name' => $first_name,
    'last_name' => $last_name,
    'remember_token' => $remember_token,
]);
Run Code Online (Sandbox Code Playgroud)

它只是将 NULL 插入到 created_at 和 updated_at 列中。我试过这些:

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

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

'create_at' => TRUE,
'updated_at' => TRUE,
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作,但只是 TRUE 把 0000-00-00 00:00:00。

Ris*_*ana 5

只有当您像这样使用 Eloquent 时,时间戳列(created_at 和 updated_at)才会自动分配:

$user = new \App\User;
$user->first_name = $first_name;
$user->last_name = $last_name;
$user->save();
Run Code Online (Sandbox Code Playgroud)

当您使用查询生成器,你必须created_atupdated_at自己的值:

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

希望这能解决您的问题。