我是laravel的新人。我在登录页面下面使用了以下行,
Route::get('login','IndexController@Login')->name('login');
此处->name('login')
是否需要使用每条路线?那是什么用的?
任何想法请分享..
答案 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');
中了解详情
答案 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');
就是这样!您不必担心表单操作值。