Метод selectOne
Метод selectOne используется для выполнения SQL-запроса
с помощью Query Builder и возвращает первую найденную запись.
В отличие от метода select, который возвращает массив всех
записей, selectOne возвращает объект типа stdClass
с данными первой строки результата. Если запись не найдена,
метод возвращает null. Первым параметром передаётся
SQL-запрос в виде строки, вторым - массив параметров для
подстановки в запрос.
Синтаксис
<?php
DB::selectOne($query, $bindings);
?>
Пример
Получим первую запись из таблицы пользователей:
<?php
use Illuminate\Support\Facades\DB;
$res = DB::selectOne('SELECT * FROM users');
if ($res) {
echo $res->name;
echo $res->email;
}
?>
Результат выполнения кода:
"John Doe"
"john@example.com"
Пример
Получим запись с определённым идентификатором с использованием подстановки параметров:
<?php
use Illuminate\Support\Facades\DB;
$id = 5;
$res = DB::selectOne(
'SELECT * FROM users WHERE id = ?',
[$id]
);
if ($res) {
echo $res->email;
}
?>
Результат выполнения кода:
"jane@example.com"
Пример
Получим одну запись с определённым условием и именованными параметрами:
<?php
use Illuminate\Support\Facades\DB;
$status = 'active';
$res = DB::selectOne(
'SELECT * FROM posts WHERE status = :status ORDER BY id LIMIT 1',
['status' => $status]
);
if ($res) {
echo $res->title;
}
?>
Результат выполнения кода:
"Latest Post Title"
Пример
Обработаем ситуацию, когда запись не найдена:
<?php
use Illuminate\Support\Facades\DB;
$res = DB::selectOne('SELECT * FROM users WHERE id = 999');
if ($res) {
echo $res->name;
} else {
echo "User not found";
}
?>
Результат выполнения кода:
"User not found"