首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >mojolicious中路由名称的用途是什么?

mojolicious中路由名称的用途是什么?
EN

Stack Overflow用户
提问于 2013-02-15 01:26:50
回答 1查看 490关注 0票数 6

我一直在学习如何使用Mojolicious框架编写应用程序,我对您为什么要使用路由名称感到困惑。例如,一条路由可以这样写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$r->route('/cities/new')
      ->via('get')
      ->to(controller => 'cities', action => 'new_form')
      ->name('cities_new_form');

但是name参数的用途是什么呢?我对web框架是个新手,所以这篇文章可能有一个微不足道的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-15 02:19:00

如果要动态生成URL,则命名路由可以在以后引用它。在您的示例中,您可以在稍后的代码中执行此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my $link = $self->url_for( 'cities_new_form' )

$link将自动填充以/cities/new结尾的URL。如果你的路线有动态的部分,你可以变得很奇特。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$r->route( '/cities/:cityname' )
    ->via( 'get' )
    ->to( controller => 'cities', action => 'new_form' )
    ->name( 'cities_new_form' );

然后您可以生成一个URL,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my $link = $self->url_for( 'cities_new_form', cityname => 'newyork' );

$link最终会以/cities/newyork收场。

这些都是琐碎的例子,但是一旦你的路由变得更加复杂,你就可以构建相当复杂的东西。

如果您不命名路由,它将获得一个默认名称,该名称只是其中字母数字字符的串联。对于长路由来说,这可能会变得单调乏味,因此您可以使用名称来缩写它们。

另请参阅Mojolicious文档中的Named Routes

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14887024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文