Laravel 播种机与 Eloquent 给出时间戳 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 之后,我在数据库中得到的时间戳为空。


收到一只叮咚
浏览 93回答 2
2回答

沧海一幻觉

仅当您使用Eloquent方法并且方法是Eloquent时,才会自动分配列timestamp(created_at和Updated_at ) 。 虽然方法不是Eloquent,但它是一个查询构建器方法。所以改用方法:save()createinsertcreatepublic function run()    {        Role::create(array(            array('name' => 'admin'),            array('name' => 'user')        ));    }当您使用查询生成器时,您必须自己赋值created_at:updated_atRole::insert(array(  array('name' => 'admin'),  array('name' => 'user'),  array('created_at' => \Carbon\Carbon::now()),  array('updated_at' => \Carbon\Carbon::now()),));

慕村225694

试试这个<?phpuse Illuminate\Database\Seeder;use App\Role;class RoleSeeder extends Seeder{&nbsp; &nbsp; public function run()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Role::truncate();&nbsp; &nbsp; &nbsp; &nbsp; Role::create(['name' => 'admin']);&nbsp; &nbsp; &nbsp; &nbsp; Role::create(['name' => 'user']);&nbsp; &nbsp; }}生成该错误是因为您使用的是 insert 而不是 create。
打开App,查看更多内容
随时随地看视频慕课网APP