Как передать дополнительный параметр из маршрута в контроллер в Laravel?

Как правильно передать дополнительный параметр в контроллер в Laravel? Вот пример кода в Django, где мы вызываем контроллер LawyerView с параметром profession=1:

path('advokaty/', views.LawyerView.as_view(), {'profession': 1})

Как переписать этот код для Laravel, чтобы передать параметр в контроллер? Вот пример кода в Laravel, который должен быть примерно таким:

Route::get('/advokaty', [LawyerController::class, 'index'], ['profession' => 1]);
  • 25 сентября 2023 г. 13:17
Ответы на вопрос 3
В Laravel вы можете передать дополнительный параметр в контроллер, используя динамические пути. 

Вот пример кода, в котором вы передаете параметр "profession" в контроллер "LawyerController" через маршрут:

```php
Route::get('/advokaty/{profession}', [LawyerController::class, 'index']);
```

В контроллере "LawyerController" вы можете получить значение параметра следующим образом:

```php
public function index($profession)
{
    // $profession содержит переданное значение параметра

    // Ваш код
}
```

Вы также можете указать параметру значение по умолчанию, если оно не будет передано через URL:

```php
public function index($profession = 1)
{
    // Ваш код
}
```

Теперь, если параметр "profession" не будет указан в URL, его значение по умолчанию будет равно 1.
https://laravel.com/docs/10.x/routing#view-routes 
 Если вам нужно обрабатывать несколько похожих маршрутов с помощью одного контроллера, вы можете определить значение вашей переменной внутри контроллера, основываясь на пути маршрута. Вы можете передавать дополнительные параметры только во view, а не в контроллере.
Похожие вопросы