我希望模型绑定在检索给定模型时使用id
以外的表列,并在模型类中覆盖getKeyName
(在本例中为Service
)但它是不工作!
class Service extends Model{
//override
public function getRouteKey() {
return 'key';
}
}
服务表:
id | key(string,unique) | name(string)
我的路线档案:
Route::resource('services', 'ServiceController');
和ServiceController
:
public function show(Service $service) {
return $service;
}
但是当我转到mysiteurl.com/services/vps
时,会显示404页面
(mysiteurl.com/services/1
有效,但我不想在网址中使用id列
答案 0 :(得分:3)
如果您希望Laravel将模型绑定到值不是模型ID的路径,则需要覆盖getRouteKeyName()
方法,如下所示:
/**
* Get the route key for the model.
*
* @return string
*/
public function getRouteKeyName()
{
return 'slug';
}