laravel栏目使用自定义链接

默认开发一个项目,文章和栏目都是以id来识别的,很多网站需要用到自定义链接,不喜欢使用id这些数字没有含义的链接,id是唯一的,要做到自定义链接也只能做到唯一,栏目或者文章表里加个自定义链接的字段,此处我会用栏目为例(文章类似),栏目模型多加一个字段slug,作为自定义链接的标识。

路由文件代码:

Route::get('{slug}.html', 'IndexController@cat')->name('index.cat.show');

slug里并没有限定slug的格式,因为我这里栏目不是必须有自定义链接,不设置自定义链接的依然可以用id来访问。

栏目模型文件:

public function link(){
   if (empty($this->slug)){
       return route('index.cat.show', ['cat'=>$this]);
   }
   return route('index.cat.show', ['slug'=>$this->slug]);
}

模型里添加一个link方法还是很方便的,你可以在任何地方使用栏目实例$cat->link()即可生成该栏目的链接,代码就是这么简单