KIDJourney
KIDJourney

Reputation: 1220

Laravel middleware get route parameter

I am coding some thing like 'school club manage system' and meet some problem on rights authorization of resource .

Suppose there are club , and club have manager , and i want to check if the user is a manager of club before he can manage it with a middleware.

Using laravel 5.2

My router looks like that :

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

The middleware I create looks like that :

  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);
}

But I failed to get the id of club from requests .

How can I solve the problem ?

Thanks in advance .

Upvotes: 13

Views: 18693

Answers (4)

Joyal
Joyal

Reputation: 2693

I am on Laravel 5.5 and

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

worked for me

Upvotes: 0

Mostafa Soufi
Mostafa Soufi

Reputation: 799

A shorter syntax is:

$request->route('parameter_name');

Upvotes: 11

Shyam Achuthan
Shyam Achuthan

Reputation: 950

if you are looking for the url parameters the best way of getting that from the resource routes in laravel 5.2 inside the middleware is below. Lets say you want to get id parameter form url club/edit/{id}

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

Upvotes: 27

KIDJourney
KIDJourney

Reputation: 1220

Woops , I found the ans after checking dd($requests).

I can use $requests->club to get parameter .

Thanks everyone.

Upvotes: 1

Related Questions