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
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