Метод missing
Метод missing класса Request позволяет проверить,
отсутствует ли определённый ключ во входящем запросе.
Он возвращает true, если указанный параметр не присутствует
в запросе (в том числе если он есть, но его значение равно null),
и false в противном случае. Это удобно для проверки
наличия данных перед их обработкой.
Синтаксис
<?php
$request->missing($key);
?>
Пример
Проверим, отсутствует ли в запросе параметр 'email':
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/user', function (Request $request) {
if ($request->missing('email')) {
echo "Email parameter is missing";
} else {
echo "Email parameter exists";
}
});
?>
Результат выполнения кода при обращении к '/user':
"Email parameter is missing"
Пример
Проверим, отсутствует ли параметр 'age' в POST-запросе:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::post('/user', function (Request $request) {
if ($request->missing('age')) {
echo "Age parameter is missing";
} else {
$age = $request->input('age');
echo "Age: " . $age;
}
});
?>
Результат выполнения кода при запросе без параметра 'age':
"Age parameter is missing"
Пример
Используем метод missing в контроллере для проверки
отсутствия нескольких параметров:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
if ($request->missing('name')) {
echo "Name is required";
return;
}
if ($request->missing('email')) {
echo "Email is required";
return;
}
echo "User data is valid";
}
}
?>
Результат выполнения кода при запросе с параметром 'name', но без 'email':
"Email is required"
Пример
Проверим, что метод missing возвращает true,
если параметр присутствует со значением null:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/test', function (Request $request) {
if ($request->missing('value')) {
echo "Parameter is missing";
} else {
$value = $request->input('value');
echo "Parameter exists with value: " . ($value ?? 'null');
}
});
?>
Результат выполнения кода при запросе с параметром 'value', равным null:
"Parameter is missing"