my resource route:
Route::resource('imagerequests', 'ImageRequestController');
It looks like this in the browser:
/imagerequests/19/edit
In my controllers contructor I do this because I need the middleware only when the user goes to the edit page:
$this->middleware('edit')->only('edit');
My editMiddleware:
public function handle($request, Closure $next)
{
dd($request->id);
}
This returns null
I've tried this too and also returns null
public function handle($request, Closure $next)
{
dd($request->imagerequests);
}
How can I access the id when I go to
result of dd($request);
Request {#42 ▼
#json: null
#convertedFiles: null
#userResolver: Closure {#295 ▶}
#routeResolver: Closure {#302 ▶}
+attributes: ParameterBag {#44 ▼
#parameters: []
}
+request: ParameterBag {#50 ▼
#parameters: []
}
+query: ParameterBag {#50 ▶}
+server: ServerBag {#46 ▶}
+files: FileBag {#47 ▶}
+cookies: ParameterBag {#45 ▶}
+headers: HeaderBag {#48 ▶}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/imagerequests/19/edit"
#requestUri: "/imagerequests/19/edit"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#356 ▶}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
result of dd($next);
Closure {#294 ▼
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#310 …}
parameters: {▶}
use: {▶}
file: "C:\Users\EXM235\Desktop\acl-poc\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php"
line: "28 to 36"
}
I'm not 100% sure this works for Middleware in the same way it does for Controllers, but in a Controller you'd typehint the model coming from the URL like so:
public function handle($request, Imagerequest $imagerequest, Closure $next)
{
$imagerequest->id
}
Of course, you'd also need to add at the beginning:
use App\Imagerequest;