【问题标题】:Using two different slugs on a route在路线上使用两个不同的 slug
【发布时间】:2016-05-05 03:34:20
【问题描述】:
我正在将一个旧的程序站点升级到 laravel 5.2,并且我正在为我制作的旧路线而苦苦挣扎。
在这个网站上,路线是这样制作的:{user_slug}/{content_slug}.html。目前,我使用cviebrock/eloquent-sluggable 来生成 slug,但如果这个不能满足我的需求,我愿意接受另一个。
我有两个问题:
- 我可以使
content-slug 唯一,但每个用户?
- 如何编写路由和控制器以匹配正确的用户 slug 和正确的内容 slug?
【问题讨论】:
标签:
laravel
laravel-5
slug
【解决方案1】:
我自己没有这样做,但我相信validation rules to do this 会有办法。这是一个未经测试的草稿,用于检查帖子表中的 content_slug,但仅检查 user_id 字段等于变量的唯一性:
'content_slug' => "unique:posts,content_slug,NULL,id,user_id,$user->id"
根据您询问的对象,他们可能会建议您(代替上述方法或与上述方法一样)根据 user_id 和 content_slug 字段在数据库中设置一个键。这样,如果尝试插入,数据库将返回错误,并在从该索引运行查询时提高性能。对索引的查询实际上可以带来指数级的性能提升。