我对laravel中的路由感到困惑

时间:2014-09-25 08:05:09

标签: php laravel laravel-4 laravel-routing laravel-5

在routes.php中,我们为控制器写了一些路由。如:

Route::post('/account/create',array(
    'as' =>'account-create',
    'uses'=>'AccountController@postCreate'
));

我知道'使用'是搜索控制器,那么'正在'处理什么?

2 个答案:

答案 0 :(得分:4)

as用于在laravel中创建named-route

作为the doc says

我们可以在生成网址或重定向时使用它们来引用路线:

//generate URL
$url = URL::route('account-create');
//redirect to the route from another
$redirect = Redirect::route('account-create'); 

// with helpers
$url = route('account-create');
$redirect = redirect()->route('account-create');

答案 1 :(得分:0)

as用于创建命名路由,实际上它非常有用。在您的应用程序中,您可以使用此命名路由URL::route('account-create');Redirect::route('account-create');创建网址或重定向,它会为您提供巨额奖励。

如果您决定要更改自己的网址,只需在路线中进行更改,一切都会正常运行,因为在其他地方您只使用了路线名称。

例如,如果您使用命名路由:

Route::post('/account/create',array(
    'as' =>'account-create',
    'uses'=>'AccountController@postCreate'
));

以及其他部分URL::route('account-create');Redirect::route('account-create');现在您决定要将网址从/account/create更改为newaccount,您只需要在routes.php中进行更改/account/createnewaccount,您的整个申请都可以正常运行

相反,如果您在应用程序的其他部分使用了URL,如果要更改此路由URL,则需要在应用程序的许多部分更改URL,以便使用命名路由,因为它可以节省大量数据如果你决定将来改变一些网址的时间。

例如,如果您不使用命名路由:

Route::post('/account/create',array(       
    'uses'=>'AccountController@postCreate'
));

以及其他部分URL::to('/account/create');Redirect::to('/account/create');现在您决定将您的网址从/account/create更改为newaccount,您不仅需要在{{1}更改网址}}但是在使用此网址的所有文件中,您可以在其中创建任何routes.phpURL::to('/account/create');