当我在laravel 4中运行工匠路线时
auth/login/{v1}/{v2}/{v3}/{v4}/{v5}
这是正常还是有问题。我的路线只是想知道是否有错误或其他什么。以下是我的身份验证路线。我正在使用宁静的路线进行身份验证。
Route::controller('auth','AuthController');
Route::get('AuthController/login', array('as' => 'login', 'uses' => 'AuthController@login'));
Route::get('auth/logout', array('as' => 'logout', 'uses' => 'auth@logout'));
Route::post('auth/login', array('uses' => 'auth@login'));
答案 0 :(得分:0)
我建议你做两个改进:
1 - 保留URI标准
在这种情况下,您不需要Route :: controller。为了保留所有具有相同结构的路线,我会做:
Route::group( array('prefix'=>'auth,function(){ //make all auth routes starting by auth
Route::get('getLogin', array('as' => 'getLogin', 'uses' => 'AuthController@getLogin'));
Route::get('getLogin', array('as' => 'logout', 'uses' => 'AuthController@logout'));
Route::post('postLogin', array('as' => 'postLogin', 'uses' => 'AuthController@postLogin'));
});
没有必要使用组,但如果你的应用程序增长可能会更好。没有组代码将是:
Route::get('auth/getLogin', array('as' => 'getLogin', 'uses' => 'AuthController@getLogin'));
Route::get('auth/getLogin', array('as' => 'logout', 'uses' => 'AuthController@logout'));
Route::post('auth/postLogin', array('as' => 'postLogin', 'uses' => 'AuthController@postLogin'));
2 - 保护您的帖子路线
对于每个帖子和放置请求,我们都要阻止这样的CSRF攻击:
Route::post('postLogin',array('before' => 'csrf','uses'=>AuthController@postLogin) );
答案 1 :(得分:0)
这是预期的。使用Route::controller()
控制器检查器adds the URI wildcards注册控制器时。请考虑以下示例:
Route::controller('user', 'UserController');
您可能会在UserController
:
public function getProfile($username)
{
$user = User::where('username', $username)->first();
return View::make('profile')->with('user', $user);
}
然后,您可以转到localhost/yourapp/user/profile/jason
在坚果壳中,它允许您将额外的参数传递给方法。对我而言,这是一种非常古老的学校方式,因为它看起来更像localhost/yourapp/user/jason/profile
,在这种情况下,您需要使用路线映射到控制器方法。