当前位置: 首页 > 知识库问答 >
问题:

如何在一个表中保存许多记录Laravel雄辩(没有关系)[重复]

常光明
2023-03-14

我希望能够在一个表中的一行中保存多行,我已经了解到这可以使用create方法来完成,但是我在尝试使用该方法时遇到了这个错误

SQLSTATE[HY000]:一般错误:1364字段“名称”没有默认值(SQL:insert intoperson\u rolesupdated\u atcreated\u at)值(2019-01-3007:46:192019-01-3007:46:19))

我的代码

    $data = [
        ['name' => 'actor'],
        ['name' => 'translator'],
        ['name' => 'director'],
        ['name' => 'stageDirector'],
        ['name' => 'costume'],
        ['name' => 'musical'],
        ['name' => 'supportDirector'],
        ['name' => 'photographer'],
        ['name' => 'choreographer'],
    ];

    $personRoles = PersonRole::create($data);

我正在使用Laravel v5.7.21

更新,在我的PersonRole中我添加了这一行

protected $fillable = ['name'];

为了使质量分配工作,但我仍然得到错误。

共有3个答案

田兴旺
2023-03-14

更新:

在你的情况下

foreach($data as $datas){PersonRole::create(['name'=>$datas->name])}

$now = Carbon::now()->toDateTimeString();
PersonRole::insert([
    ['name'=>'Foo', 'created_at'=>$now, 'updated_at'=>$now],
    ['name'=>'Bar', 'created_at'=>$now, 'updated_at'=>$now],
    ['name'=>'Baz', 'created_at'=>$now, 'updated_at'=>$now],
    ..................................
]);

或者在模型类中生成函数并调用它

public function createManyRecord(array $records){
    foreach ($records as $record) {
        $this->create($record);
    }
    return $this;
}
束研
2023-03-14

你必须使用插入而不是创建-

$personRoles = PersonRole::insert($data);
云建木
2023-03-14

您必须使用插入()方法,但是当您使用插入方法时,您必须手动插入created_atupdated_at

$data = [
    [
        'name' => 'actor',
        'created_at' => now(),
        'updated_at' => now(),
    ],
    ['name' => 'translator'],
    ['name' => 'director'],
    ['name' => 'stageDirector'],
    ['name' => 'costume'],
    ['name' => 'musical'],
    ['name' => 'supportDirector'],
    ['name' => 'photographer'],
    ['name' => 'choreographer'],
];

$personRoles = PersonRole::insert($data);
 类似资料:
  • 我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可

  • 我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)

  • 我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca

  • 我使用的是Laravel 5.4,其模型和表格结构如下: 一个用户可以有多个账户 一个帐号可以被多个用户共享 每个账户有多个持有量 因此,用户通过他们的许多帐户间接拥有许多资产。 我需要帮助在用户模型上定义一个称为“持有量”的关系,以获得适用于用户的所有持有量(基于他们所链接的账户)。 我尝试了很多不同的东西,在谷歌上花了很长时间。我可以接近BelongToMany和hasManyThrough,

  • 我试着补充: 并用调用,但响应为空。

  • 我有三个模型用户,电子邮件和电话和数据库表用户,电子邮件和电话与下列列提到。 现在,我在用户模型中使用以下函数,使用雄辩的ORM一对多关系建立用户与电子邮件和电话的关系 我想知道有必要使用hasMany()方法两次,或者有其他更好的方法吗?