我正在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',
]);
});
答案 0 :(得分:0)
确保config / auth.php正在调用正确的Auth防护。此外,redirectsTo默认设置为'/',即站点路径。你的中间件是什么?默认的RedirectIfAuthenticated中间件默认情况下具有指向站点根目录的条目。只有这三种情况可能不同于预期。