Laravel 5将链接视图中的变量传递给路径而不显示在URL栏

时间:2016-03-16 11:13:30

标签: laravel variables url laravel-5 routes

我试着尽可能地解释一下情况,我想 知道在这种情况下你会采用什么解决方案。 假设我们在DB中有一个带有产品的表。 每个产品都有id,name和其他不相关的属性。 我需要在地址栏中输入这种URL:

http://website.bla/products/mickeymouse

其中mickeymouse是一个自定义名称,实际上取自名称 数据库中的字段,但自定义为更友好的URL。

现在,要管理它,我需要一个可以调用控制器的路由 调用产品的新视图。这就是问题所在。自mickeymouse 是一个自定义名称,即使我把它传递给路线,我也找不到它 在数据库中通过控制器,导致它几乎不可能 检索原始名称。 所以我认为我可以传递可能做的ID,但网址会 变得有点:

http://website.bla/products/255/mickeymouse

以255作为示例ID,我想避免在URL

中显示产品ID

在laravel 5中是否可以从简单链接传递变量(ex:id) 到没有在地址栏中显示的路线?

1 个答案:

答案 0 :(得分:1)

您应该为Laravel使用eloquent-sluggable包。这是做你想做的最简单的方法。

它易于使用的软件包,可以从表格中的任何列自动为您创建SEO友好的slug。此外,它还添加了finBySlug($id)

等方法
$list = MyList::findBySlug($id);