Laravel:Route :: get('login','IndexController @ Login') - > name('login');

时间:2018-02-28 12:47:09

标签: php laravel

我是laravel的新人。我在登录页面下面使用了以下行,

Route::get('login','IndexController@Login')->name('login');

此处->name('login')是否需要使用每条路线?那是什么用的?

任何想法请分享..

4 个答案:

答案 0 :(得分:2)

使用命名路线,您可以在刀片文件中写出类似的内容

<a href="{{ route('login') }}">Login</a>

而不是

<a href="/login">Login</a>

因此,如果URL在某些时候发生变化,如果您使用route-helper定义了该文件,则不必更改刀片文件中的任何内容。

答案 1 :(得分:1)

这对每条路线都不是必需的,它允许您命名路线/控制器动作,以便稍后可以参考。

这允许您执行诸如在重定向中引用路由之类的操作,这在路由的URL结构发生更改时非常有用,您的代码不会因为引用名称而不是路由本身而中断。

// Generating URLs...
$url = route('profile');

// Generating Redirects...
return redirect()->route('profile');

documentation here

中了解详情

答案 2 :(得分:0)

您可以以不同的方式使用该路线,具有不同的优势

很长,没有->name('login')

<a href="{{action('IndexController@Login', ['parameter' => $value])}}">Login</a>

简短,->name('login')

<a href="{{ route('login') }}">Login</a>

答案 3 :(得分:0)

好吧,你可以跳过->name('login')。但是如果您的表单必须指定URL。

例如,<form name="some-form" method="POST" action="/login">

和路线将是,

Route::get('login','IndexController@Login');

但是,如果您出于不同目的在不同视图中使用4-5个登录表单,并且将来您决定将login网址重命名为signin,该怎么办?

那么,您必须访问每个表单并更改其action属性值。

相反,如果您使用->name('login'),那么您的表单将是,

<form name="some-form" method="POST" action="{{ route('login') }}">

和路线将是,

Route::get('login','IndexController@Login')->name('login');

现在,如果您决定将路径文件中的网址从login更改为signin,那么您只需要更改它们,laravel将会处理您的表单的网址。

像这样,

Route::get('signin','IndexController@Login')->name('login');

就是这样!您不必担心表单操作值。