Вставка данных insert QueryBuilder
Для вставки данных используется метод insert()
. Он принимает параметром массив имен столбцов и значений:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
DB::table('posts')->insert([
'title' => 'page',
'slug' => 'slug',
]);
}
}
Получение id
Можно получить id
вставленной записи, использовов для вставки метод insertGetId
:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$id = DB::table('posts')->insertGetId([
'title' => 'page',
'slug' => 'slug',
]);
echo $id;
}
}
Массовая вставка
Можно вставить в таблицу сразу несколько записей одним вызовом insert
. Давайте для примера вставим несколько постов. Для этого нужно передать параметром двухмерный массив:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
DB::table('posts')->insert([
[
'title' => 'page1',
'slug' => 'slug1',
],
[
'title' => 'page2',
'slug' => 'slug2',
]
]);
}
}