Laravel邮政路线控制器方法未被调用

时间:2016-03-13 15:54:32

标签: php laravel laravel-routing laravel-5.2

我正在Laravel中构建一个应用程序,我已经让我的用户注册工作正常,我现在想要修改注册的工作方式,所以我修改了我的路由以调用不同的方法。

最初路线的定义如下:

Route::post('register', 'Auth\AuthController@postRegister');

这很好用。然后我把它改成了:

Route::post('register', 'Auth\AuthController@someOtherMethod'); 

此方法定义如下:

public function someOtherMethod(Request $request)
{
    die('If the method is called you should see this');
}

然而,它不会被调用(消息不显示)。相反,它会将我重定向到网站的根目录。

请注意,我的服务器上有一个缓存破坏脚本,每次出现这样的奇怪问题时我会运行以下命令:

php artisan route:clear
php artisan cache:clear
service php5-fpm restart
service nginx restart

每次我做出更改时,我也会在隐身/私密窗口中运行该页面。

现在是有趣的部分;我尝试撤消我所做的更改,以便再次调用postRegister,我完全希望这会使其恢复为默认行为,但它仍然会将我重定向到网站的根目录!所以现在我甚至没有一个可以运行的注册页面。

有谁知道发生了什么事?

提前感谢您的帮助。

编辑:

这是我的完整 routes.php

use Illuminate\Http\Request;

Route::group(['middleware' => 'web'], function () {
    /** Public routes **/
    Route::get('',                              'HomepageController@index');
    Route::get('/',                             'HomepageController@index');
    Route::get('terms', function() {
        return view('terms');
    });
    Route::get('privacy', function() {
        return view('privacy');
    });

    /** Public auth routes **/
    Route::get('register',                      'RegistrationController@index');
    Route::post('register',                     'Auth\AuthController@postRegister');
    Route::get('login', function() {
        return view('auth.login');
    });
    Route::post('login',                        'Auth\AuthController@postLogin');
    Route::get('logout',                        'Auth\AuthController@getLogout');
    Route::get('dashboard/login', function() {
        return view('admin.login');
    });
    Route::post('dashboard/login',              'AdminAuth\AuthController@postLogin');
    Route::get('dashboard/logout',              'AdminAuth\AuthController@getLogout');

    /** Admin routes **/
    Route::get('dashboard', [
      'middleware' => 'admin',
      'uses' => 'Admin\DashboardController@index'
    ]);
    Route::get('dashboard/users', [
      'middleware' => 'admin',
      'uses' => 'Admin\DashboardController@showUsers'
    ]);
    Route::get('dashboard/search', [
        'middleware' => 'admin',
        'as' =>   'adminSearch',
        'uses' => 'Admin\DashboardController@query'
    ]);

    /** Admin auth routes **/
    Route::get('dashboard/staff/create', [
        'middleware' => 'admin',
        function () {
            return view('admin.register');
        }
    ]);
    Route::post('dashboard/staff/create', [
        'middleware' => 'admin',
        'uses' => 'AdminAuth\AuthController@postRegister'
    ]);

    /** Controllers **/
    Route::controllers([
        'password' =>                           'Auth\PasswordController',
    ]);
});

1 个答案:

答案 0 :(得分:0)

确保config / auth.php正在调用正确的Auth防护。此外,redirectsTo默认设置为'/',即站点路径。你的中间件是什么?默认的RedirectIfAuthenticated中间件默认情况下具有指向站点根目录的条目。只有这三种情况可能不同于预期。