Я кодирую что-то вроде «системы управления школьным клубом» и сталкиваюсь с проблемой авторизации прав на ресурс.

Предположим, есть club и club есть менеджер, и я хочу проверить, является ли пользователь менеджером club, прежде чем он сможет управлять им с помощью промежуточного программного обеспечения.

Использование laravel 5.2

Мой router выглядит так:

Route::resource('club', 'ClubController');

Создаваемое мной промежуточное ПО выглядит так:

  public function handle($request, Closure $next)
    {
        if (!Auth::check()){
            // ask user to login
        }

        $club = Club::findOrFail($request->input('club'));
        $user = Auth::user();

        if (!$club->managers->contains($user)){
            //tell user your are not manager .
        }

        return $next($request);
}

Но мне не удалось получить идентификатор клуба от requests.

Как решить проблему?

Заранее спасибо .

9
KIDJourney 3 Мар 2016 в 05:53

4 ответа

Лучший ответ

Если вы ищете параметры URL-адреса, лучший способ получить это из маршрутов ресурсов в laravel 5.2 внутри промежуточного программного обеспечения ниже. Допустим, вы хотите получить параметр идентификатора формы url club / edit / {id}

$request->route()->parameter('id');
11
Shyam Achuthan 3 Мар 2016 в 03:18

Я использую Laravel 5.5 и

dd($request->route()->parameter('id'));
dd($request->route('id'));

Работал на меня

0
Joyal 2 Сен 2019 в 05:38

К сожалению, я нашел ответ после проверки dd($requests).

Я могу использовать $requests->club для получения параметра.

Спасибо всем.

1
KIDJourney 3 Мар 2016 в 02:57

Более короткий синтаксис:

$request->route('parameter_name');
4
Mostafa Soufi 10 Авг 2019 в 11:40