播放框架在视图中具有通过该slugify()功能创建SEO友好URL的功能.似乎没有"unslugify"函数,那么如何从slugified参数中查找模型?
例如,如果我有一个标题属性设置为"hello world"的Blog模型,则slugify会产生"hello-world".如果我然后执行查询Blog.find("byTitle", title),其中title是slugified标题,它将不返回任何结果.如何使用提供的slug查找模型?
Cod*_*nci 14
似乎没有一种方法,但我并不感到惊讶.Slugify从字符串中删除字符,unslugify不知道将其放回去的位置.
例如,如果您查看此问题的URL,则为
stackoverflow.com/questions/4433620/play-framework-how-do-i-lookup-an-item-from-a-slugify-url
Run Code Online (Sandbox Code Playgroud)
它删除了感叹号(!),括号和此问题标题中的引号.unlugify方法如何知道如何以及将这些字符放回去的位置?
您要采用的方法是包括ID,就像stackoverflow URL一样.
如果您想采用与stackoverflow URL相同的格式,那么您的路线就是
GET /questions/{id}/{title} Question.show()
Run Code Online (Sandbox Code Playgroud)
然后在你的行动中,你会忽略标题,而只是做 Blog.findById(id);
然后你有一个SEO友好的URL,并使用一个很好的REST方法来访问博客文章.