Laravel Eloquent ORM 中如何获取插入的多行数据

Har*_*ker 5 php mysql arrays laravel eloquent

所以我设法使用 laravel 一次保存多个数据model::insert(array(...));

示例数据

array (
  0 => 
  array (
    'organization' => '1',
    'status' => false,
    'project' => '1',
    'act_date' => '2016-11-23 08:19:06',
  ),
  1 => 
  array (
    'organization' => '1',
    'status' => false,
    'project' => '1',
    'act_date' => '2016-11-23 08:19:06',
  ),
)  
Run Code Online (Sandbox Code Playgroud)

我想要的是获取数据,或者至少是插入数组的 id。array({ data[0].id=>1 }, { data[1].id=>2 })该数据还必须包含与插入数据的数量相对应的多个id( )。

问题model::insert(array(...));是它true在成功时返回,false否则返回。

model::create(array(...));返回插入行的数据,但不支持多行插入。

Ale*_*nin 4

create()如果您想获取每个插入行的 ID,我真的建议您使用方法。

但如果你真的想使用insert()你可以尝试这个(虽然方法有它自己的缺点,我不会使用它):

model::insert($array);
$lastIds = model::orderBy('id', 'desc')->take(count($array))->pluck('id');
Run Code Online (Sandbox Code Playgroud)