Skip to content
Advertisement

Laravel method Auth user redirect to login with message

I want redirect guest on login with message, but method:

Auth::user(); 

redirect on page login only without message. How I can add message?

Example:

redirect()->route('login')->with('error', 'Please auth!!');

Advertisement

Answer

You can do it using a middleware, that performs a redirect. Create the middleware at app/Http/Middleware/Withmessage.php and add it to app/Http/Kernel.php after StartSession string.

protected $middlewareGroups = [
    'web' => [
        ...
        IlluminateSessionMiddlewareStartSession::class,
        AppHttpMiddlewareWithmessage::class, // <-- here
        IlluminateViewMiddlewareShareErrorsFromSession::class,
        ...
    ],
    ...
];

The code of a middleware contains only one string, that differs from a clean middleware.

namespace AppHttpMiddleware;

use Closure;
use Auth;

class Withmessage {

    public function handle($request, Closure $next)
    {
        $route = $request->route()->getName();
        if(!Auth::user() and $route === 'button-click-button') {                
            return redirect()->route('login')->with('error', 'Please auth!!');
        }

        return $next($request);
    }
}
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement