Использование возврата на вставку в laravel и postgresql - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь вставить значения в postgresql 10 с помощью Laravel 5.6.У меня есть такая таблица:

test
----
test_id     (identity generated by default, primary key)
test_name

Моя проблема с получением test_id, который был только что вставлен обратно.

$test_id = \DB::connection('pgsql')->insert(
    'INSERT INTO test (test_name) VALUES (?) RETURNING test_id', 
    ['hello world']
);

Если я распечатываю $test_id, он просто печатает1.Я делаю это через цикл с разными именами.Все вставляется правильно, но даже если test_id равно 6 в базе данных, я продолжаю возвращаться 1.

Как правильно вернуть $test_id в Laravel?

1 Ответ

0 голосов
/ 23 мая 2018

Можно использовать insertGetId, например:

$id = DB::table('users')->insertGetId(
    [ 'name' => 'first' ]
);

или попробуйте это:

$id = DB::getPdo()->lastInsertId();

В вашем случае это сработало:

$id = DB::connection('pgsql')
    ->table('test')
    ->insertGetId(['test_name' => 'hello world'], 'test_id');

https://laravelcode.com/post/laravel-55-get-last-inserted-id-with-example

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