with route redireccionar name data php redirect laravel-5

php - route - redirect with data laravel



Redirección de Laravel 5.4 a url personalizada después de iniciar sesión (6)

Estoy usando Laravel Framework 5.4.10, y estoy usando la autenticación regular que

php artisan make:auth

proporciona. Quiero proteger toda la aplicación y redirigir a los usuarios a / themes después de iniciar sesión.

Tengo 4 controladores: ForgotPasswordController.php, LoginController.php, RegisterController.php y ResetPasswordController.php. He editado esta línea en los últimos tres:

protected $redirectTo = ''/themes'';

Esta es la primera línea en mis rutas / web.php:

Auth::routes();

He agregado esta función en mi Controller.php:

public function __construct() { $this->middleware(''auth''); }

He editado la aplicación / Http / Middleware / RedirectIfAuthenticated.php, para que la función de manejo se vea así:

public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect(''/themes''); } return $next($request); }

Todo está bien, excepto que cuando hago clic en el botón Iniciar sesión, me redirigen a "/", no a "/ themes". Si no necesito autenticación en los controladores (sin función __contruct en el archivo Controller.php), me redirigen OK al iniciar sesión. ¿Qué estoy haciendo mal?


De acuerdo con la documentación de Laravel , creo en la aplicación / Http / Controllers / Auth / LoginController.php el siguiente método:

protected function redirectTo() { $user=Auth::user(); if($user->account_type == 1){ return ''/admin''; }else{ return ''/home''; } }

para obtener la información de usuario de mi base de datos, usé "Illuminate / Support / Facades / Auth;".


Debe establecer el valor $ redirectTo para enrutar que desea redirigir

$this->redirectTo = route(''dashboard'');

dentro del constructor AuthController.

/** * Where to redirect users after login / registration. * * @var string */ protected $redirectTo = ''/''; /** * Create a new authentication controller instance. * * @return void */ public function __construct() { $this->middleware($this->guestMiddleware(), [''except'' => ''logout'']); $this->redirectTo = route(''dashboard''); }


Eso es lo que estoy trabajando actualmente, qué coincidencia.

También necesita agregar las siguientes líneas en su LoginController

namespace App/Http/Controllers/Auth; use App/Http/Controllers/Controller; use Illuminate/Foundation/Auth/AuthenticatesUsers; use Illuminate/Http/Request; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; protected function authenticated(Request $request, $user) { if ( $user->isAdmin() ) {// do your margic here return redirect()->route(''dashboard''); } return redirect(''/home''); } /** * Where to redirect users after login. * * @var string */ //protected $redirectTo = ''/admin''; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware(''guest'', [''except'' => ''logout'']); } }


La forma en que lo hice usando el rasgo AuthenticatesUsers.

/App/Http/Controllers/Auth/LoginController.php

Agregue este método a ese controlador:

/** * Check user''s role and redirect user based on their role * @return */ public function authenticated() { if(auth()->user()->hasRole(''admin'')) { return redirect(''/admin/dashboard''); } return redirect(''/user/dashboard''); }


Si observa el rasgo AuthenticatesUsers, verá que en el método sendLoginResponse se realiza una llamada a $this->redirectPath() . Si observa este método, descubrirá que redirectTo puede ser un método o una variable.

Esto es lo que ahora tengo en mi controlador de autenticación.

public function redirectTo() { $user = Auth::user(); switch(true) { case $user->isInstructor(): return ''/instructor''; case $user->isAdmin(): case $user->isSuperAdmin(): return ''/admin''; default: return ''/account''; } }


puede agregar el método en la línea de agregar LoginController use App/User; en la parte superior, después de este método de agregar, es trabajo para mí wkwkwkwkw, pero debe agregar {{ csrf_field() }} en ver administrador y usuario

protected function authenticated(Request $request, $user){ $user=User::where(''email'',$request->input(''email''))->pluck(''jabatan''); $c=" ".$user." "; $a=strcmp($c,'' ["admin"] ''); if ($a==0) { return redirect(''admin''); }else{ return redirect(''user''); }}