我有一个Laravel 5.4网站,用户登录。 如果我输入Url,脚本会重定向到Login页面,当然不是“home”。
如果我输入的网址不是登录页面,我现在想要一个新页面。带登录按钮的页面,然后进入登录页面。我创建了一个新的刀片,我想作为第一页:start.blade.php
我怎么能改变这个?
我在web.php中使用我的代码尝试了但是没有用,我的代码:
Route::group(['middleware' => 'auth'],function(){
Route::get('logout','AuthController@Logout')->name('logout');
Route::get('/', 'HomeController@index')->name('home');
Route::get('myprofile','ProfileController@Index')->name('profile');
答案 0 :(得分:1)
在route
文件中添加新的routes.php
,但不附加中间件。使用此: -
路线::得到('开始',' StartController @开始') - >名称('开始&#39);
现在,您的routes.php
文件应如下所示: -
// Newly added route for handling pre-login calls.
Route::get('start','StartController@start')->name('start');
Route::group(['middleware' => 'auth'],function(){
Route::get('logout','AuthController@Logout')->name('logout');
Route::get('/', 'HomeController@index')->name('home');
Route::get('myprofile','ProfileController@Index')->name('profile');
});
您需要使用名为StartController
的函数创建一个新控制器start
,以实现此目的而不会干扰当前的代码结构。
在控制器中启动功能: -
public function start() {
return view('< new view name here >');
}
答案 1 :(得分:1)
您必须在群组外为您的网页添加新路线:
Route::get('start','tController@start')->name('start');
Route::group(['middleware' => 'auth'],function(){
Route::get('logout','AuthController@Logout')->name('logout');
Route::get('/', 'HomeController@index')->name('home');
Route::get('myprofile','ProfileController@Index')->name('profile');
}
然后你必须改变Exceptions->Handler.php
:
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('login')); // <-- change here :)
}
您必须将return redirect()->guest(route('login'));
更改为新路线:)
return redirect()->guest(route('start'));