Я пытаюсь использовать привязку модели маршрута, но есть проблемы.Laravel 5 Route Model Binding не работает
RouteServiceProvider.php
public function boot(Router $router)
{
parent::boot($router);
$router->model('categories', 'App\Category');
}
Route.php
Route::get('categories/trash', ['as' => 'admin.categories.trash', 'uses' => '[email protected]']);
Route::get('categories/{categories}/restore', ['as' => 'admin.categories.restore', 'uses' => '[email protected]']);
Route::get('categories/{categories}/delete', ['as' => 'admin.categories.delete', 'uses' => '[email protected]']);
Route::resource('categories', 'CategoriesController');
CategoriesController.php
public function restore(Category $category)
{
$category->restore();
return redirect()->back();
}
public function delete(Category $category)
{
$category->forceDelete();
return redirect()->back();
}
Посмотреть
<a href="{!! URL::route('admin.categories.restore', $category->id) !!}">Restore</a>
<a href="{!! URL::route('admin.categories.delete', $category->id) !!}">Delete Permanently</a>
Но когда я попытался restore
delete
или я получил вопрос о NotFoundHttpException
Я предполагаю, что категория с идентификатором 16 на самом деле существует в вашей базе данных? –
Да, в базе данных есть данные. http://prntscr.com/69lcsf –
Эта строка была удалена. Насколько я знаю, вы не можете использовать стандартную привязку модели для получения удаленных строк. Если вы хотите сделать это, вам придется использовать '$ router-> bind ('App \ Category', function ($ category) {})' вместо этого, где в закрытии использовался метод Eloquent 'withTrashed'. Я полагаю, что вышеупомянутое предполагает, что ваша модель использует «SoftDeletes», и столбец 'deleted_at' фактически используется. –