2017-03-09 43 views
0

我使用Laravel Soft Deleting和類型暗示。Laravel:軟刪除模型和類型暗示

是否可以使用類型提示向具有適當權限的用戶顯示軟刪除的模型。開箱即用軟刪除的模型不能被鍵入暗示(laravel會引發錯誤)。

示例代碼 - 路線:

Route::resource('users', 'Admin\UsersController', [ 
    'parameters' => ['id' => 'user'], 
    'names' => [ 
     'index' => 'admin.users.index', 
     'create' => 'admin.users.create', 
     'store' => 'admin.users.store', 
     'show' => 'admin.users.show', 
     'edit' => 'admin.users.edit', 
     'update' => 'admin.users.update', 
     'destroy' => 'admin.users.destroy' 
    ] 
]); 

而且在管理\ UsersController.php

public function show(User $user) 
{   
    // Show the $user (also if soft deleted) 
} 
+0

你是什麼意思* type hinted *? – JSelser

+0

在我的情況下,UsersController的show()方法獲取用戶標識。當我寫'公共功能顯示(用戶$用戶)'laravel試圖找到具有給定用戶ID的用戶。爲了獲得模型,至少在沒有軟刪除的情況下不需要做更多的事情。 – sugo

回答

1

中只看Explicit Route Model Binding 「定製解析邏輯」。你需要在app/Providers/RouteServiceProvider.php這樣做:

public function boot() 
{ 
    parent::boot(); 

    Route::bind('user', function ($value) { 
     return App\User::witTrashed()->find($value); 
    }); 
} 
+0

哇,很好,工作正常:) – sugo

+0

小錯字:'witTrashed()'應該'withTrashed()' – mauricehofman