Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5路由相同的URL登录与否_Php_Login_Routes_Laravel 5_Middleware - Fatal编程技术网

Php Laravel 5路由相同的URL登录与否

Php Laravel 5路由相同的URL登录与否,php,login,routes,laravel-5,middleware,Php,Login,Routes,Laravel 5,Middleware,我正在将一个站点从Laravel4更新到5。在L4中,我进行了以下设置: if(Sentry::check()){ Route::get('/', array('as' => 'school.home.index', 'uses' => 'school\AuthSchoolController@index')); else{ Route::get('/', 'school\SchoolController@index'); } 注意相同的url,但不同的控制器取决于是否登录

我正在将一个站点从Laravel4更新到5。在L4中,我进行了以下设置:

if(Sentry::check()){ 
  Route::get('/', array('as' => 'school.home.index', 'uses' => 'school\AuthSchoolController@index'));
else{
 Route::get('/', 'school\SchoolController@index');
}
注意相同的url,但不同的控制器取决于是否登录

对于L5,我无法使用中间件,请尝试以下操作:

Route::get('/', 'SchoolController@index');

Route::group(['middleware' => 'auth'], function()
{   
    Route::get('/', array('as' => 'school.home.index', 'uses' => 'AuthSchoolController@index'));
});
但这只是通过第一个页面进入组,在那里它被重定向到登录页面,如果登录,则重定向到管理员

因此,我认为我需要在基于登录名的路由中使用if/else等效项,但的Auth::user()似乎不起作用:

if(Auth::check()){
  Route::get('/', array('as' => 'school.home.index', 'uses' => 'AuthSchoolController@index'));
}
else{
 Route::get('/', 'SchoolController@index');
}

尝试按如下方式重新排列路线:

Route::group(['middleware' => 'auth'], function()
{   
    Route::get('/', array('as' => 'school.home.index', 'uses' =>     'AuthSchoolController@index'));
});

Route::get('/', 'SchoolController@index');

尝试按如下方式重新排列路线:

Route::group(['middleware' => 'auth'], function()
{   
    Route::get('/', array('as' => 'school.home.index', 'uses' =>     'AuthSchoolController@index'));
});

Route::get('/', 'SchoolController@index');


你能为我添加的if/else Auth::user()编写代码吗?但这无论如何都不起作用。你在升级版本中使用的是Sentry还是Eloquent Auth?我使用的是内置的Auth软件包。你能为if/else Auth::user()编写代码吗我已经添加了,但这无论如何都不起作用。您在升级版本中使用的是Sentry还是Eloquent auth?我使用的是内置的auth PackageHanks,但不幸的是,即使有人登录,它也默认为第二条路径。因为中间件似乎只对重定向起作用,如果它是同一个url,那么is会先做第一个,然后再做第二个。我看不到答案。真希望我不是从拉威尔开始的!需要更多的代码示例。如果它通过了第一个,那么它仅仅意味着它没有被授权。你检查过你的授权码了吗?同样,同一个url发送到不同的控制器是个坏主意。将路由视为与目的地匹配的URL数组。如果要使用唯一键强制执行数组,则数组中的最后一个“键”将始终覆盖其上方的类似键。这可能与这里发生的事情类似。谢谢。我已经决定在控制器中使用auth。谢谢,但不幸的是,即使有人登录,也默认使用第二条路径。因为中间件似乎只对重定向起作用,如果它是同一个url,那么is会先做第一个,然后再做第二个。我看不到答案。真希望我不是从拉威尔开始的!需要更多的代码示例。如果它通过了第一个,那么它仅仅意味着它没有被授权。你检查过你的授权码了吗?同样,同一个url发送到不同的控制器是个坏主意。将路由视为与目的地匹配的URL数组。如果要使用唯一键强制执行数组,则数组中的最后一个“键”将始终覆盖其上方的类似键。这可能与这里发生的事情类似。谢谢。我已经决定在控制器中使用auth。注意:此方法将阻止您使用路由缓存。注意:此方法将阻止您使用路由缓存。