[英]Laravel 5 Route Model Binding is not working
我正在嘗試使用路由模型綁定,但是出現問題。
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' => 'CategoriesController@trash']);
Route::get('categories/{categories}/restore', ['as' => 'admin.categories.restore', 'uses' => 'CategoriesController@restore']);
Route::get('categories/{categories}/delete', ['as' => 'admin.categories.delete', 'uses' => 'CategoriesController@delete']);
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
問題
注釋中的屏幕快照表明您正在使用SoftDeletes
。
以下模型綁定代碼未考慮已刪除的行。
$router->model('categories', 'App\Category');
為此,您需要使用bind
而不是model
$router->bind('categories', function($value)
{
return App\Category::withTrashed()->where('id', $value)->first();
}
其中將包括已刪除的行。 例如,您需要將其用於還原路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.