Intereting Posts
Проверить установку ImageMagick Почему бы не использовать встроенных пользователей MySQL и разрешения для веб-сайта? добавление параметров URL в форму PHP HTML PDO добавляет апостроф к запросу mySQL записывать аудио с пользователя и сохранять на сервере Установить ini max_execution_time не работает Как генерировать json с smarty? PHP method = "post" перестает работать после того, как я добавил этот .htaccess … Почему? Как запретить другим пользователям отправлять свои собственные данные на мою php-страницу? Экспортировать определенный элемент в DOMDocument в строку Метод Ajax отображает неправильный ввод Внутренняя доставка Magento DHL не работает Поиск многомерного массива с использованием регулярных выражений в PHP и возвращаемых ключах WooCommerce – цена на дисплей включена на странице продукта Исправлены сломанные изображения в электронной почте из-за изменения пути к ресурсам сервера

Как получить последние вставленные идентификаторы в laravel

Я вставляю несколько строк одновременно, скажем, 2 строки

$multiple_rows = [ ['email' => 'taylor@example.com', 'votes' => 0], ['email' => 'dayle@example.com', 'votes' => 0] ]; DB::table('users')->insert($multiple_rows); 

Как я могу получить те вставленные идентификаторы.

Я делаю это так, пока.

 foreach($multiple_rows as $row){ DB::table('users')->insert($row); $record_ids[] = DB::getPdo()->lastInsertId(); } 

Любой другой хороший способ сделать это, не вставляя одну строку каждый раз.

Solutions Collecting From Web of "Как получить последние вставленные идентификаторы в laravel"

Вы можете сделать что-то вроде следующего:

 $latestUser = DB::table('users')->select('id')->orderBy('id', 'DESC')->first(); $multiple_rows = [ ['email' => 'taylor@example.com', 'votes' => 0], ['email' => 'dayle@example.com', 'votes' => 0] ]; DB::table('users')->insert($multiple_rows); $users = DB::table('users')->select('id')->where('id', '>', $latestUser->id)->get(); 

Если вам действительно нужны все вставленные идентификаторы

 $dataArray = [ ['name' => 'ABC'], ['name' => 'DEF'] ]; $ids = []; foreach($dataArray as $data) { $ids[] = DB::table('posts')->insertGetId($data); } 

Чтобы получить идентификатор с массивной вставкой, я думаю, что хороший способ – сначала получить последний идентификатор в таблице, сделать массивную вставку и получить последний идентификатор. Теоретически они должны следовать, если не было вставки из другого соединения. Чтобы избежать решения, это транзакция .

Обновить

Также прочитайте документацию