Я использую Хашид, чтобы скрыть идентификатор ресурса в Laravel 5.Laravel 5 маршрута и Хашид
Вот маршрут привязки в файле маршрутов:
Route::bind('schedule', function($value, $route)
{
$hashids = new Hashids\Hashids(env('APP_KEY'),8);
if(isset($hashids->decode($value)[0]))
{
$id = $hashids->decode($value)[0];
return App\Schedule::findOrFail($id);
}
App::abort(404);
});
И в модели:
public function getRouteKey()
{
$hashids = new \Hashids\Hashids(env('APP_KEY'),8);
return $hashids->encode($this->getKey());
}
Теперь это прекрасно работает, и ресурс отображается отлично, а идентификатор - хэширован. НО, когда я иду на свой маршрут создания, он 404 - если я удалю App :: abort (404), маршрут создания переходит к представлению ресурса «показать» без каких-либо данных ...
Вот Создать маршрут:
Route::get('schedules/create', [
'uses' => '[email protected]',
'as' => 'schedules.create'
]);
Шоу маршрут:
Route::get('schedules/{schedule}', [
'uses' => 'Schedules [email protected]',
'as' => 'schedules.show'
]);
Я также привязки модели к маршруту:
Route::model('schedule', 'App\Schedule');
Любые идеи, почему мое представление создания отображается неправильно? Отображение индекса выглядит нормально.