Получить идентификатор сохраненных элементов после использования Laravel insert eloquent

#php #laravel #eloquent #laravel-7

#php #laravel #eloquent #laravel-7

Вопрос:

Я сохранил массив в базе данных, используя Laravel метод insert Eloquent, как показано ниже:

 $newTags = [
    [
        'name' => 'tag1'
    ],
    [
        'name' => 'tag2'
    ],
];

if (sizeof($newTags) > 0) {
    Tag::insert($newTags);
}
  

После этого есть ли способ получить id сохраненные элементы?

Ответ №1:

Для массовой вставки нет встроенного метода для получения вставленных идентификаторов. Вы можете использовать цикл foreach для вставки одного за другим и получения идентификаторов с помощью insertGetId и помещения их в массив.

 $insertedIDs = [];
if (count($newTags) > 0) {
    foreach ($newTags as $newTag) {
        $insertedIDs[] = Tag::insertGetId($newTag);
    }
}
  

Ответ №2:

используйте это,

 $newTags = [
        [
            'name' => 'tag1'
        ],
        [
            'name' => 'tag2'
        ],
    ];

    if(count($newTags) > 0){
         $id = Tag::insertGetId($newTags);
    }