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

问题描述 投票:1回答:4

我是laravel的新人。我用下面的行登录页面,

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

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

任何想法请分享..

php laravel
4个回答
2
投票

使用命名路由,您可以在Blade文件中编写类似的内容

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

代替

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

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


1
投票

这对于每个路径都不是必需的,它允许您命名路径/控制器操作,以便稍后可以引用它。

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

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

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

documentation here了解更多信息


0
投票

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

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

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

简而言之,与->name('login')

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


0
投票

好吧,你可以跳过->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');

而已!您不必担心表单操作值。

© www.soinside.com 2019 - 2024. All rights reserved.