Laravel generating invalid routes -
i don't know happened laravel, laravel generating invalid routes when performing action when open comments box click button comments modal box opened fines when see in chrome developer option -> network shows me many invalid routes. idea why happening?
please see attached screnshot:
admin route prefix

route::group(['prefix' => 'admin', 'before' => 'allow_only_admin'], function () { }); http://projecturl.com/admin/order/
route::filter('allow_only_admin', function () { if (auth::check() && !auth::user()->is('admin')) { return redirect()->intended('user/login'); } else { } }); this abc middleware:
class abc { public function handle($request, closure $next) { if (\auth::check() && \auth::user()->admin) { return $next($request); } return redirect()->route('user.login'); } } this no_auth filter: check user logged in , redirect user role
route::filter('no_auth', function () { if (auth::check()) { if (auth::user()->is('admin')) { return redirect::route('orders.all'); } if (auth::user()->is('writer')) { return redirect::route('windex'); } if (auth::user()->is('teamlead')) { return redirect::route('tlindex'); } } }); and login route:
route::group(['prefix' => 'user', 'before' => 'no_auth'], function () { route::get('login', ['as' => 'user.login', 'uses' => 'auth\authcontroller@showloginform']); }); route::post('user/login', ['as' => 'user.post.login', 'uses' => 'auth\authcontroller@postlogin']); route::get('user/logout', ['as' => 'user.logout', 'uses' => 'auth\authcontroller@getlogout']);
your middlware looping indefinitely redirects. tried redirecting once , happened. i'd suggest reorganizing admin middleware, here use:
app\http\middleware\admin.php:
<?php namespace app\http\middleware; use closure; class admin { public function handle($request, closure $next) { if (\auth::check() && \auth::user()->admin) { return $next($request); } return redirect()->route('some.route'); } } app/http/kernel.php
protected $routemiddleware = [ ... 'admin' => 'app\http\middleware\admin', ]; set middleware: in kernel.php add 'admin' => 'app\http\middleware\admin', in routes.php: route::group(['middleware' => 'admin'], function() { ...admin routes...
edit: after added more code, here tips, maybe fix problem.
you don't need route filters, remove them all. use route groups, admin routes in statement:
routes.php
route::group(['middleware' => 'admin', 'prefix' => 'admin'], function() { ... admin routes } don't forget register admin middleware in kernel.php correct name (admin in example).
to redirect users own area, try putting logic in post login route in auth\authcontroller@postlogin. there check if credentials correct (auth::attempt) , if are, make if else redirect user correct place.
you don't need no_auth filter, remove it.
Comments
Post a Comment