我是laravel的新人。我用下面的行登录页面,
Route::get('login','IndexController@Login')->name('login');
->name('login')
是否有必要使用每条路线?那是什么用的?
任何想法请分享..
使用命名路由,您可以在Blade文件中编写类似的内容
<a href="{{ route('login') }}">Login</a>
代替
<a href="/login">Login</a>
因此,如果URL在某些时候发生变化,那么如果您使用route-helper定义了它,则不必更改刀片文件中的任何内容。
这对于每个路径都不是必需的,它允许您命名路径/控制器操作,以便稍后可以引用它。
这允许您执行诸如在重定向中引用路由之类的操作,这在路由的URL结构发生更改时很有用,您的代码不会因为引用名称而不是路由本身而中断。
// Generating URLs...
$url = route('profile');
// Generating Redirects...
return redirect()->route('profile');
在documentation here了解更多信息
您可以以不同的方式使用该路线,具有不同的优势
很长,没有->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');
现在,如果你决定在你的路线文件中将你的网址从login
更改为signin
,那么你只需要改变它们,laravel会处理你的表格的网址。
像这样,
Route::get('signin','IndexController@Login')->name('login');
而已!您不必担心表单操作值。