何时使用:redirect(‘/’)vs. redirect()-> route(‘home’)vs. redirect()-> home()?

当我有这个命名的路线时:
路线:: get(‘/’,’IndexController @ index’)-> name(‘home’);

然后以任何控制器的任何操作方法;当我需要重定向到指定的路线回家时;这些语句中的任何一条都正确地重定向到预期的路由:

返回redirect(‘/’);
返回redirect()-> route(‘home’);
返回redirect()-> home();

什么时候使用每个?
有什么区别?
使用其他方法有什么好处?

解决方法:

documentation所述:

When you call the redirect helper with no parameters, an instance of
07001 is returned, allowing you to call any
method on the Redirector instance. For example, to generate a
RedirectResponse to a named route, you may use the route method

正如您在API方法(下面的链接)中看到的那样,可以使用很多方法,并且还有一个特定的辅助方法home(),它只是redirect()-> route(‘home’)的快捷方式如@ceejayoz所强调.

现在,我们将讨论return redirect(‘/’);并返回redirect()-> route(‘home’);正如您所说,它们中的两个正确地重定向到了预期的路由,但是第二个在将来确实很有用.

为什么呢

因为如果您想更改路由文件中的URL结构,则仅需要更改路由,例如:

Route::get('/', 'IndexController@index')->name('home');

将会 :

Route::get('/home_page', 'IndexController@index')->name('home');

并且所有重定向都将引用该路由,并且您无需更改=>所有重定向仍将正常运行.

如果您选择使用第一个(我的意思是return redirect(‘/’);),那么在更改路由之后,您将需要解析所有控制器,以检查是否存在某些重定向,然后使用更改的路由和更改他们:p

上一篇:php-具有相似参数的路由上的路由参数模式


下一篇:supervisor:进程管理工具