Laravel 播种机 Eloquent 给时间戳 null
Laravel seeder with Eloquent give timestamp null
我正在尝试插入静态数据,借助播种机和 Eloquent 如下所示。
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
}
即使在使用 Eloquent 之后,我在数据库中得到的时间戳为空。
试试这个
<?php
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::truncate();
Role::create(['name' => 'admin']);
Role::create(['name' => 'user']);
}
}
产生错误是因为您使用的是插入而不是创建。
timestamp
列(created_at 和 updated_at)只会自动分配如果您使用 Eloquent
save()
方法和create
方法是Eloquent.
虽然 insert
方法是 而不是 Eloquent,但它是一个查询生成器方法。因此,请改用 create
方法:
public function run()
{
Role::create(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
当您使用查询生成器时,您必须自己 created_at
和 updated_at
值 :
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user'),
array('created_at' => \Carbon\Carbon::now()),
array('updated_at' => \Carbon\Carbon::now()),
));
我正在尝试插入静态数据,借助播种机和 Eloquent 如下所示。
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
}
即使在使用 Eloquent 之后,我在数据库中得到的时间戳为空。
试试这个
<?php
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::truncate();
Role::create(['name' => 'admin']);
Role::create(['name' => 'user']);
}
}
产生错误是因为您使用的是插入而不是创建。
timestamp
列(created_at 和 updated_at)只会自动分配如果您使用 Eloquent
save()
方法和create
方法是Eloquent.
虽然 insert
方法是 而不是 Eloquent,但它是一个查询生成器方法。因此,请改用 create
方法:
public function run()
{
Role::create(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
当您使用查询生成器时,您必须自己 created_at
和 updated_at
值 :
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user'),
array('created_at' => \Carbon\Carbon::now()),
array('updated_at' => \Carbon\Carbon::now()),
));