我一直在学习如何使用Mojolicious框架编写应用程序,我对您为什么要使用路由名称感到困惑。例如,一条路由可以这样写
$r->route('/cities/new')
->via('get')
->to(controller => 'cities', action => 'new_form')
->name('cities_new_form');
但是name参数的用途是什么呢?我对web框架是个新手,所以这篇文章可能有一个微不足道的答案。
发布于 2013-02-15 02:19:00
如果要动态生成URL,则命名路由可以在以后引用它。在您的示例中,您可以在稍后的代码中执行此操作:
my $link = $self->url_for( 'cities_new_form' )
而$link
将自动填充以/cities/new
结尾的URL。如果你的路线有动态的部分,你可以变得很奇特。例如:
$r->route( '/cities/:cityname' )
->via( 'get' )
->to( controller => 'cities', action => 'new_form' )
->name( 'cities_new_form' );
然后您可以生成一个URL,如下所示
my $link = $self->url_for( 'cities_new_form', cityname => 'newyork' );
而$link
最终会以/cities/newyork
收场。
这些都是琐碎的例子,但是一旦你的路由变得更加复杂,你就可以构建相当复杂的东西。
如果您不命名路由,它将获得一个默认名称,该名称只是其中字母数字字符的串联。对于长路由来说,这可能会变得单调乏味,因此您可以使用名称来缩写它们。
另请参阅Mojolicious文档中的Named Routes。
https://stackoverflow.com/questions/14887024
复制相似问题