簡體   English   中英

Laravel 5 Route Model綁定不起作用

[英]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>

但是,當我嘗試restoredelete ,出現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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM