Masonite 路由能否在 URL 结尾以外的任何地方接受参数?

Can a Masonite route accept a parameter anywhere other than the end of a URL?

Masonite route documentation 描述了在 URL 末尾传递参数,如下所示:

# Handles /article/1234
Route.get('/article/@id', 'ArticleController@show')

我想做的是在 article.id 之后创建一个 slug,然后使用 article.id 到 return 数据库中的相应文章。 Masonite 文档似乎没有解释如何执行此操作,但我猜它看起来像下面这样(不起作用)。

# Handles /article/1234/my-nice-slug
Route.get('/article/@id/*', 'ArticleController@show')

有人知道正确的方法吗?

我自己想出来了。

您可以通过为路径的下一部分分配另一个参数而不使用它来获取 article.id。即:

# Handles /article/1234/my-nice-slug
Route.get('/article/@id/@my_slug', 'ArticleController@show')

编辑

Masonite 的 Joe Mancuso 也建议使用 route compilers

尝试'/article/@id:integer/@my_slug'

匹配 /article/123 但不匹配 /article/string_here