php、laravel、blade 中的 name() 函数 ??我不知道它的作用...

name() function in php, laravel, blade ?? I don't what it does...

Route::get('smartphones/entry', 'EntryController@s_entry')->name('s_entry')->middleware('only_admin_entry');

https://i.stack.imgur.com/INhdi.jpg

谁能告诉我 name() 函数在做什么?

我正在做一个 laravel 项目...上面的片段来自 /routes/web.php 文件

Named routes allow the convenient generation of URLs or redirects for specific routes. You may specify a name for a route by chaining the name method onto the route definition

你读一读here

The purpose of the route name is to provide a way to refer to the route in your code. So instead of using url('foo'); you can use route('route_name');. One of the advantages to this is that if you want to change the URI from foo to account, you need only update the route definition, not all the references to it.

Route::get('foo', 'FooController@method')->name('route_name');

等于

Route::get('foo', ['uses' => 'FooController@method', 'as' => 'route_name']);

来自Docs,

Named routes allow the convenient generation of URLs or redirects for specific routes. You may specify a name for a route by chaining the name method onto the route definition:

Route::get('user/profile', function () {
    //
})->name('profile');

您可以在视图或控制器中通过名称指定路由,例如 route('profile')

优点:

  • 假设您只在 15 个不同的视图中使用了路线 URL,现在您需要更改路线 URL!!这是很多工作。相反,如果您使用路线名称您的路线,URL 可以随时更改,因为路线名称保持不变!

name() 函数用于命名路由,因此如果您已经命名了路由,而不是像 /abc/xyx/123 那样调用路由,您只需使用 route() 辅助函数作为关注

route('route_name');

一个例子就是重定向,假设你想经常重定向到某个路由,比如 path/to/xyz/abc/login。您可以简单地将路线命名为 login。所以将来即使你将路由位置更改为path/to/login,如果你已经像上面所说的那样命名路由,其他逻辑也不需要改变。

一个例子我觉得很好

//this is the route
Route::get('path/to/login', 'LoginController@login')->name('login');

您可以简单地通过 route('login') 引用此路由,就像您可以进行重定向一样

return redirect()->route('login')

希望你清楚

name() 函数只是用来定义路由的名称,所以如果你已经命名了路由,而不是像 /xxx/abc 那样调用路由,你只需使用 route() 辅助函数作为关注

路线::获取('path/to/signup', 'UserController@store')->名称('user_signup');

您可以简单地使用 return redirect()->route('user_signup') 来调用注册表单