Laravel - как получить последний идентификатор строки, который будет создан в будущем - PullRequest
0 голосов
/ 05 мая 2019

Я хочу вставить простое меню в свою базу данных, и меню также поддерживает миниатюру.Прежде чем вставить меню в свою базу данных, я хочу получить последний увеличенный идентификатор (который был неизвестен) из MySQL для присвоения имени моему миниатюре уникального идентификатора.

Я могу получить последний идентификатор, если таблица имеетхотя бы одна строка.

// last insert id
$last_id = App\Menu::get()->last()->id;

// or // last insert id
$last_id = App\Menu::selectRaw('MAX(id) AS latest_id')->get();

Если данных нет, приведенный выше код должен возвращать ноль.У меня вопрос, как я могу получить последний автоматически увеличенный идентификатор, который будет сгенерирован MySQL.

Ответы [ 2 ]

1 голос
/ 05 мая 2019

На мой взгляд, поменяйте стратегию. Лучший способ - назвать миниатюру после получения последнего идентификатора вставки. Как вы знаете, PHP является базовым языком запросов, и если у вас будет несколько запросов, которые хотят выполнять эту работу одновременно, вы столкнетесь с серьезными проблемами с идентификаторами конфликтов.

0 голосов
/ 05 мая 2019

Я согласен с @ ajafari.

Лучше всего сначала создать меню, а затем назвать миниатюру.

Это выглядит так:

$menu = new Menu(['column_name' => value, etc ...]);
$menu->save();
//Now you have access to the latest id of the menu in $menu->id

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...