我的应用程序需要一个自定义标记系统。这意味着为每个新标记创建多个记录,然后将这些记录的ID添加到数据透视表中。
我可以使用Laravels" insert":
从数组中插入多个记录 $tag_titles = explode(",", $tag_titles);
foreach ($tag_titles as $tag_title) {
$tags[] = array('tag_title' => $tag_title);
}
$tag = Tag::insert( $tags );
但现在我需要知道在插入过程中创建的id。有没有办法这样做而不需要多次调用DB来单独执行每个插入?
感谢。
到目前为止我已经尝试了
sync()方法仅适用于单个id:
$tag->content()->sync($tags);
插入后,$ tag不是对象,因此$ tag-> id不会工作
答案 0 :(得分:1)
看起来您正在使用QueryBuilder实例进行插入,在这种情况下,您应该能够使用insertGetId
https://laravel.com/api/5.1/Illuminate/Database/Query/Builder.html#method_insertGetId