Атрибут Get
Атрибут Get вешается на метод
контроллера и указывает, что маршрут должен
обрабатывать только GET-запросы. Первым
параметром передаётся путь URL. Если запрос
приходит с другим HTTP-методом, Symfony
возвращает ошибку 405 Method Not Allowed.
Синтаксис
#[Get(path, name: name)]
Пример
Давайте повесим метод контроллера на адрес
'/user', который будет отвечать только
на GET-запросы:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Attribute\Get;
class UserController extends AbstractController
{
#[Get('/user', name: 'user_index')]
public function index(): Response
{
return new Response('user list');
}
}
?>
Результат выполнения кода для GET-запроса
на адрес /user:
"user list"
Пример
Давайте примем параметр id из URL
и вернём его в ответе:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Attribute\Get;
class UserController extends AbstractController
{
#[Get('/user/{id}', name: 'user_show')]
public function show(int $id): Response
{
return new Response('user ' . $id);
}
}
?>
Результат выполнения кода для адреса
/user/42:
"user 42"