Replies: 1 comment
-
Working Solution: <?php
namespace App\Http\Middleware;
use Closure;
class RouteModelBindings
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$controller = $request->route()->controller;
$controller->applyRouteBindings($request);
return $next($request);
}
} class EventController extends Controller
{
public function __construct()
{
$this->middleware(\App\Http\Middleware\RouteModelBindings::class);
}
public function applyRouteBindings(Request $request)
{
if ($request->route()->getName() === 'events.show') {
Route::bind('event', function ($id) use ($request) {
return $this->baseQuery($request)->findOrFail($id);
});
}
}
// controller methods below ...
} Make sure you put it before the protected $middlewarePriority = [
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\ApiResponseMiddleware::class,
\App\Http\Middleware\Authenticate::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\App\Http\Middleware\RouteModelBindings::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Illuminate\Auth\Middleware\Authorize::class,
]; |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What is the proper way of route model explicit binding on route/controller level?
I managed to make it work but can anyone confirm this approach? Thanks!
Beta Was this translation helpful? Give feedback.
All reactions