玩!框架:如何从"slugify()"URL查找项目?

Ric*_*oll 4 playframework

播放框架在视图中具有通过该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方法来访问博客文章.

  • 需要强调的是,对于搜索引擎来说,这个细分参数只存​​在**.无论有没有,您的网站都应该一样. (6认同)