我有一条路线:
Route::group(['prefix' => 'admin', 'middleware' => 'auth', 'as' => 'admin.'], function () {
Route::resource('photos', 'Admin\PhotoController', [
'parameters' => [
'photos' => 'alias'
]
]);
});
使用命令:
php artisan make:controller Admin / PhotoController --resource --model = Models / Photo
我创建了具有方法的资源控制器Admin / PhotoController
public function edit(Photo $photo)
{
dd($photo);
}
为什么当我通过url-address admin / photos / alias1 / edit 时,laravel 5.6不会自动加载alias = alias1的模型照片,但是会加载一个空模型:
如果在地址栏中,而不是在路由中输入参数 alias 写id admin / photos / 1 / edit +,则删除参数名称alias
,然后正常加载照片模型:
但是对我来说,参数ID不适合,我需要使用别名。请告诉我可能是问题所在,并且有可能吗?
答案 0 :(得分:0)
ID。这称为隐式路由模型绑定。您需要使用显式路由模型绑定并注册alias1以在服务提供者中使用。在此处查看:https://laravel.com/docs/5.6/routing#explicit-binding
自定义分辨率逻辑是您想要的部分。