From 71bf45de7bfe5445704e6a9c83992bf41994ad97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=A0=D1=83=D0=BF=D0=B0=D1=81?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Thu, 6 Nov 2025 17:55:37 +0500 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D1=81=20=D0=B0?= =?UTF-8?q?=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D0=BC=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D0=BB=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/framework/routing.md | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/pages/framework/routing.md b/pages/framework/routing.md index a26c901..10d3f90 100644 --- a/pages/framework/routing.md +++ b/pages/framework/routing.md @@ -227,10 +227,10 @@ $country = $app->getCurrentRoute()->getParameterValue('country'); Эти контроллеры позволяют использовать методы классов для обработки запросов. Например, если у вас есть контроллер `SomeController` с методом `viewAction`, вы можете настроить маршрут следующим образом: ```php - $routes->get('/countries', [SomeController::class, 'view']); + $routes->get('/countries', [SomeController::class, 'list']); ``` -В этом случае, при обращении к `/countries`, будет вызван метод `viewAction` контроллера `SomeController`. +В этом случае, при обращении к `/countries`, будет вызван метод `listAction` контроллера `SomeController`. #### Отдельные действия @@ -256,17 +256,22 @@ $country = $app->getCurrentRoute()->getParameterValue('country'); #### Аргументы контроллеров -В качестве аргументов в контроллерах можно использовать объекты запроса `HttpRequest`, объект текущего маршрута `Route`, а также именованные параметры маршрута: +Если на маршруты назначаются контроллеры, то параметры запроса также передаются в метод контроллера. +Допустим у нас есть маршрут: ```php - use Bitrix\Main\HttpRequest; - use Bitrix\Main\Routing\Route; - $routes->get('/countries/{country}', function ($country, HttpRequest $request) { - return "country {$country} response"; - }); - $routes->get('/countries/{country}', function (Route $route) { - return "country {$route->getParameterValue('country')} response"; - }); + $routes->get('/countries/{country}', [SomeController::class, 'view']); +``` + +В методе контроллера мы можем использовать аргумент `$country`: +```php +class SomeController +{ + public function viewAction(string $country) + { + # code ... + } +} ``` #### Обратная совместимость @@ -525,4 +530,4 @@ $routes->get('/countries', function () { 2. **Некорректная работа параметров маршрута**. Проверьте, что паттерны в методе `where` соответствуют ожидаемым значениям. -3. **Проблемы с генерацией ссылок**. Убедитесь, что маршруты имеют уникальные имена и используются правильно при генерации ссылок. \ No newline at end of file +3. **Проблемы с генерацией ссылок**. Убедитесь, что маршруты имеют уникальные имена и используются правильно при генерации ссылок.