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

В Laravel дополнительные параметры из маршрута можно передать в контроллер несколькими способами. Один из самых простых способов - использование анонимных функций в определении маршрута.

Предположим, у вас есть маршрут, определенный в файле web.php, который выглядит следующим образом:

Route::get('user/{id}', function ($id) {
    return AppHttpControllersUserController::show($id, 'additionalParam');
});

Здесь мы передаем параметр {id} в функцию анонимного контроллера, которая затем вызывает метод show из класса контроллера UserController. Также мы добавляем дополнительный параметр additionalParam в вызове метода.

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

namespace AppHttpControllers;

class UserController extends Controller
{
    public function show($id, $additionalParam)
    {
        // Делаем что-то с $id и $additionalParam
        // ...
    }
}

Здесь мы определяем метод show в классе UserController, принимающий два параметра: $id, который будет соответствовать {id} из маршрута, и $additionalParam, который будет равен 'additionalParam' в нашем случае.

Метод show может использовать эти параметры для выполнения необходимых действий. Вы можете передать их в модель для извлечения данных из базы данных или использовать их как параметры для формирования ответа.

Это один из примеров передачи дополнительных параметров из маршрута в контроллер в Laravel. В зависимости от ваших потребностей, вы можете использовать и другие методы, такие как использование параметров в маршруте (например, Route::get('user/{id}/{additionalParam}', 'UserController@show')) или использование middleware для добавления параметров.