Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions pages/framework/routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

#### Отдельные действия

Expand All @@ -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 ...
}
}
```

#### Обратная совместимость
Expand Down Expand Up @@ -525,4 +530,4 @@ $routes->get('/countries', function () {

2. **Некорректная работа параметров маршрута**. Проверьте, что паттерны в методе `where` соответствуют ожидаемым значениям.

3. **Проблемы с генерацией ссылок**. Убедитесь, что маршруты имеют уникальные имена и используются правильно при генерации ссылок.
3. **Проблемы с генерацией ссылок**. Убедитесь, что маршруты имеют уникальные имена и используются правильно при генерации ссылок.