我正在尝试使用来显示URL上的链接。例如,而不是使用:
http://localhost:8000/product/1
我想使用...
http://localhost:8000/product/blue-shirts
到目前为止,我设法通过软件包cviebrock/eloquent-sluggable
添加了子弹。我该如何使用路线和视图?
<?php
use Sluggable;
public function sluggable()
{
return [
'slug' => [
'source' => 'product_name'
]
];
}
答案 0 :(得分:0)
您可以在RouteServiceProvider
中自定义路由模型绑定解析逻辑:
public function boot()
{
parent::boot();
Route::bind('product', function ($value) {
return Product::where('slug', $value)->first() ?? abort(404);
});
}
有关更多信息,请参见the docs here。
或者,将以下内容添加到您的Product
模型中以使用隐式绑定:
/**
* Get the route key for the model.
*
* @return string
*/
public function getRouteKeyName()
{
return 'slug';
}