Метод sole
Метод sole применяется к запросу Eloquent и возвращает единственную модель, удовлетворяющую условиям запроса. Если запрос возвращает более одной записи, метод выбрасывает исключение MultipleRecordsFoundException. Если запрос не возвращает ни одной записи, метод выбрасывает исключение ModelNotFoundException. Метод полезен в ситуациях, когда вы точно ожидаете получить одну запись, и хотите явно указать это в коде.
Синтаксис
<?php
Model::sole();
?>
Пример
Давайте получим пользователя с конкретным email:
<?php
use AppModelsUser;
$user = User::where('email', 'user@example.com')->sole();
echo $user->name;
?>
Результат выполнения кода:
"John Doe"
Пример
Если запрос возвращает несколько записей, метод sole выбрасывает исключение:
<?php
use AppModelsUser;
use Illuminate\Database\MultipleRecordsFoundException;
try {
$user = User::where('age', 25)->sole();
echo $user->name;
} catch (MultipleRecordsFoundException $e) {
echo "Found multiple users";
}
?>
Результат выполнения кода:
"Found multiple users"
Пример
Если запрос не возвращает записей, метод sole выбрасывает исключение:
<?php
use AppModelsUser;
use Illuminate\Database\Eloquent\ModelNotFoundException;
try {
$user = User::where('email', 'notexists@example.com')->sole();
echo $user->name;
} catch (ModelNotFoundException $e) {
echo "User not found";
}
?>
Результат выполнения кода:
"User not found"
Смотрите также
-
метод
first,
который возвращает первую запись -
метод
get,
который возвращает коллекцию записей -
метод
firstWhere,
который возвращает первую запись по условию -
метод
count,
который возвращает количество записей