我希望能够在一个表中的一行中保存多行,我已经了解到这可以使用create
方法来完成,但是我在尝试使用该方法时遇到了这个错误
SQLSTATE[HY000]:一般错误:1364字段“名称”没有默认值(SQL:insert intoperson\u roles
(updated\u at
,created\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'];
为了使质量分配工作,但我仍然得到错误。
更新:
在你的情况下
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;
}
你必须使用插入
而不是创建-
$personRoles = PersonRole::insert($data);
您必须使用插入()
方法,但是当您使用插入方法时,您必须手动插入created_at
和updated_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()方法两次,或者有其他更好的方法吗?