play 框架在视图中有一个功能,可以通过以下方式创建 SEO 友好的 URL:slugify()
功能。似乎没有“unslugify”功能,那么如何从slugify参数中查找模型呢?
例如,如果我有一个博客模型,其标题属性设置为“hello world”,则 slugify 将生成“hello-world”。如果我然后执行查询Blog.find("byTitle", title)
其中 title 是 slugified 标题,它将不返回任何结果。如何使用提供的 slug 查找模型?
似乎没有办法,但我并不感到惊讶。 Slugify 会从字符串中删除字符,而 unslugify 则不知道将其放回何处。
例如,如果你查看这个问题的 URL,它是
stackoverflow.com/questions/4433620/play-framework-how-do-i-lookup-an-item-from-a-slugify-url
它删除了该问题标题中的感叹号 (!)、括号和引号。 unslugify 方法如何知道如何以及在何处将这些字符放回原处?
您想要采取的方法是也包含 ID,就像 stackoverflow URL 一样。
如果您想采用与 stackoverflow URL 相同的格式,您的路线将是
GET /questions/{id}/{title} Question.show()
然后在你的行动中,你会忽略标题,简单地做Blog.findById(id);
然后,您将拥有一个 SEO 友好的 URL,并使用良好的 REST 方法来访问博客文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)