Метод json
Метод json класса Request применяется для извлечения содержимого JSON-запроса. Он автоматически декодирует JSON-строку, переданную в теле запроса, и возвращает результат в виде массива или объекта. При неудачном декодировании метод вернёт null.
Синтаксис
<?php
$res = $request->json($key, $default);
?>
Первым параметром метод принимает ключ для извлечения конкретного значения, вторым - значение по умолчанию. Если ключ не передан, метод вернёт все данные JSON.
Пример
Давайте получим все данные из JSON-запроса и выведем их:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
$data = $request->json();
return $data;
}
}
?>
При отправке POST-запроса с JSON-телом вида:
{
"name": "John",
"age": 30,
"city": "New York"
}
Результат выполнения кода:
[
"name" => "John",
"age" => 30,
"city" => "New York"
]
Пример
Давайте получим конкретное значение по ключу из JSON-запроса:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function show(Request $request)
{
$name = $request->json('name');
return $name;
}
}
?>
При отправке GET-запроса с JSON-телом вида:
{
"name": "John",
"age": 30,
"city": "New York"
}
Результат выполнения кода:
"John"
Пример
Давайте получим значение по ключу с значением по умолчанию, если ключ отсутствует:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function update(Request $request)
{
$email = $request->json('email', 'default@example.com');
return $email;
}
}
?>
При отправке PUT-запроса с JSON-телом вида:
{
"name": "John",
"age": 30,
"city": "New York"
}
Результат выполнения кода:
"default@example.com"