我有两个相关的表:表A 和表B 。
public function comments(){
return $this->hasMany('App\tableB');
}
public function posts()
{
return $this->belongsTo('App\tableA');
}
我想在表A 中创建一条记录,然后使用它并在表B 中插入许多记录。
此代码有效:
$s = tableA::create(["postname" =>"test"]); // this create success
现在我为这个创建的帖子插入评论记录:
$s->comments()->createMany([["txt"=>"a"],["txt"=>"b"]]);
问题1:
我启用了查询调试并看到此代码:
$s->comments()->createMany([["txt"=>"a"],["txt"=>"b"]]);
为每个插页运行一个查询(即insert into x values (a)
和insert into x values (b )
以及........)!!!
如何更改代码,使其不会为每条记录运行一个Insert语句?!
问题2:
将数组传递给laravel createMany()
方法时出现问题:(。
如何用php创建输出[["txt"=>"a"],["txt"=>"b"]]
?
我尝试使用下面的代码进行创建,但它不起作用,laravel显示错误
$b = array();
array_push($b,"txt","yellow");
array_push($b,"txt","ssss");
有人能帮助我吗?
我想要完全正确:see the link(createMany方法)---但它为每次插入运行多个查询
$post = App\Post::find(1);
$post->comments()->createMany([
[
'message' => 'A new comment.',
],
[
'message' => 'Another new comment.',
],
]);