Iam new in laravel and i want to redirect to rout (dashboard) after login, can i make it ?
iam tried many of methods but not work with me
this RedirectIfAuthenticated.php file
<?php
namespace App\Http\Middleware;
use Closure;
use Request;
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::DASH);
}
return $next($request);
}
}
this LoginController.php file
<?php
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;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = 'dashboard';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
this RoutServerProvider file
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
public const HOME = '/';
public const DASH = '/dashboard';
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
//
parent::boot();
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapSiteRoutes();
$this->mapAdminRoutes();
//
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
protected function mapSiteRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/site.php'));
}
protected function mapAdminRoutes()
{
Route::namespace($this->namespace)
->group(base_path('routes/admin.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
}
My Routs file site.php
<?php
use App\Article;
use App\Http\Controllers;
/*
|--------------------------------------------------------------------------
| Site Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Auth::routes();
Route::get('/', 'HomeController@index')->name('home');
Route::group(['prefix' => 'dashboard','middleware' => 'guest:api'], function () {
Route::get('/', 'HomeController@admin_index')->name('dashboard');
Route::get('add', 'manage@AddArticle')->name('addarticle');
Route::post('add', 'manage@AddArticle')->name('addpostarticle');
Route::get('view', 'manage@view')->name('viewarticle');
Route::get('read/{id}', 'manage@read')->name('read');
Route::post('read/{id}', 'manage@read')->name('postread');
Route::get('delete/{id}','manage@DeleteArticle');
Route::post('edit/{id}', 'manage@Edit')->name('edit');
Route::get('edit/{id}','manage@Edit');
Route::get('articles','ArticleController@index');
});
CodePudding user response:
You can simpy redirect from your controller after login like This:
public function login(Request $request){
$message = array(
'required.email' => 'This is required',
'required.password' => 'This is required',
);
$this->validate($request,[
'email' => 'required',
'password' => 'required',
],$message);
$email = $request->email;
$pass = $request->password;
if(Auth::attempt(['email' => $email, 'password' => $pass, 'status' => 1])){
Session::flash('success','Welcome '.Auth::user()->name);
return redirect()->route('dashboard');
}else{
Session::flash('error','Sorry! Try Again. It seems your login credential is not correct.');
return redirect()->back();
}
}
CodePudding user response:
You have the redirect function which can be used on different ways :
return redirect()->back();
return redirect()->route('dashboard);
You can find all you need here : https://laravel.com/docs/8.x/redirects