dongxueji2838 2015-04-11 04:10
浏览 302
已采纳

Laravel Undefined offset:1

I want to add a authentication when guest try to access the home page. I get the error when I try to access the home page.

Laravel Version : Laravel 5

The routes.php error version:

Route::get('auth/login', 'Auth\AuthController@getLogin');  
Route::post('auth/login', 'Auth\AuthController@postLogin');  
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Route::get('auth/register', 'Auth\AuthController@getRegister'); 
Route::post('auth/register', 'Auth\AuthController@postRegister'); 
Route::get('/', ['middleware' => 'auth', function()
{
    Route::get('/', 'HomeController@index'); 
    Route::get('pages/{id}', 'PagesController@show');  
    Route::post('comment/store', 'CommentsController@store'); 
}]);

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' =>     'auth'], function()  
{
  Route::get('/', 'AdminHomeController@index');
  Route::resource('pages', 'PagesController');
  Route::resource('comments', 'CommentsController');
});

Error Log

at HandleExceptions->handleError('8', 'Undefined offset: 1',   'G:\wamp\www\Laravel5\vendor\compiled.php', '7377', array('request' => object(Request), 'this' => object(Route))) in compiled.php line 7377

The correct origional version

Route::get('/', 'HomeController@index');  
Route::get('pages/{id}', 'PagesController@show');  
Route::post('comment/store', 'CommentsController@store'); 
Route::get('auth/login', 'Auth\AuthController@getLogin');  
Route::post('auth/login', 'Auth\AuthController@postLogin');  
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Route::get('auth/register', 'Auth\AuthController@getRegister'); 
Route::post('auth/register', 'Auth\AuthController@postRegister'); 
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' =>  'auth'], function()  
{
  Route::get('/', 'AdminHomeController@index');
  Route::resource('pages', 'PagesController');
  Route::resource('comments', 'CommentsController');
});

Update: I know solve the problem but don't know why? You can see the last four lines I declared a route group with authentication. And when I test that part, I had logged in. Now I log out the /admin prefix and I can see the login page when I try to access the root url.

So my idea is write a guestAuth middleware for users and a adminAuth middleware to administrators. Do you have better ideas?

  • 写回答

2条回答 默认 最新

  • doudong1117 2015-04-11 04:32
    关注

    Try with -

    Route::group(['middleware' => 'auth'], function()
    {
        Route::get('/', 'HomeController@index'); 
        Route::get('pages/{id}', 'PagesController@show');  
        Route::post('comment/store', 'CommentsController@store'); 
    });
    

    Check here

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测