我是Laravel的新手。我在登录页面上使用以下行,
Route::get('login','IndexController@Login')->name('login');
在这里->name('login')
使用每条路线必不可少?那是什么使用?
任何想法请分享..
带有命名路由的您可以在刀片文件中写下类似的内容
<a href="{{ route('login') }}">Login</a>
而不是
<a href="/login">Login</a>
因此,如果URL应在某个时候更改,则不必使用路由助手定义刀片文件中的任何内容。
这并不是每个路线的必要条件,它允许您命名路由/控制器操作,以便稍后引用它。
这使您可以执行诸如重定向中的路由之类的事情,如果路由的URL结构更改,这很有用,您的代码不会断开,因为它引用了名称而不是路由本身。
// Generating URLs...
$url = route('profile');
// Generating Redirects...
return redirect()->route('profile');
在此处的文档中找到更多信息
您可以以不同的优势以不同的方式使用该路由
长,没有->name('login')
:
<a href="{{action('IndexController@Login', ['parameter' => $value])}}">Login</a>
简短,使用->name('login')
:
<a href="{{ route('login') }}">Login</a>
好吧,您可以跳过->name('login')
。但是,如果您的表格必须指定URL。
例如,<form name="some-form" method="POST" action="/login">
和路线将是
Route::get('login','IndexController@Login');
但是,如果您在不同的视图中有4-5个登录表格出于不同的目的,并且将来您决定将login
URL重命名为signin
?
好吧,然后您必须访问每种表格并更改其action
属性值。
相反,如果您使用->name('login')
,则您的表格将为
<form name="some-form" method="POST" action="{{ route('login') }}">
和路线将是
Route::get('login','IndexController@Login')->name('login');
现在,如果您决定将URL从路由文件中的login
更改为signin
,那么您只需要更改它,Laravel就会照顾您的表格URL。
这样,
Route::get('signin','IndexController@Login')->name('login');
就是这样!您不必担心表单值。