Laravel Routes Artisan

时间:2013-06-05 05:59:32

标签: laravel laravel-4 laravel-routing

当我在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'));

2 个答案:

答案 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,在这种情况下,您需要使用路线映射到控制器方法。