为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 播种机与 Eloquent 给出时间戳 null

Laravel 播种机与 Eloquent 给出时间戳 null

PHP
收到一只叮咚 2023-08-11 17:02:46
我正在尝试在播种器和 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 之后,我在数据库中得到的时间戳为空。
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

仅当您使用Eloquent方法并且方法是Eloquent时,才会自动分配列timestamp(created_at和Updated_at ) 。 虽然方法不是Eloquent,但它是一个查询构建器方法。所以改用方法:

save()create

insertcreate


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()),

));


查看完整回答
反对 回复 2023-08-11
?
慕村225694

TA贡献1880条经验 获得超4个赞

试试这个


<?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']);

    }

}

生成该错误是因为您使用的是 insert 而不是 create。


查看完整回答
反对 回复 2023-08-11
  • 2 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信