Laravel:软删除模型和类型提示
Laravel: Soft Deleted Models and Type Hinting
我使用 Laravel Soft Deleting 和类型提示。
是否可以使用类型提示向具有适当权限的用户显示软删除模型。开箱即用的软删除模型无法进行类型提示(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'
]
]);
并在 Admin\UsersController.php
public function show(User $user)
{
// Show the $user (also if soft deleted)
}
看看 Explicit Route Model Binding 中的 "Customizing the Resolution Logic" 部分。
你会想在 app/Providers/RouteServiceProvider.php
中做这样的事情:
public function boot()
{
parent::boot();
Route::bind('user', function ($value) {
return App\User::withTrashed()->find($value);
});
}
我使用 Laravel Soft Deleting 和类型提示。
是否可以使用类型提示向具有适当权限的用户显示软删除模型。开箱即用的软删除模型无法进行类型提示(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'
]
]);
并在 Admin\UsersController.php
public function show(User $user)
{
// Show the $user (also if soft deleted)
}
看看 Explicit Route Model Binding 中的 "Customizing the Resolution Logic" 部分。
你会想在 app/Providers/RouteServiceProvider.php
中做这样的事情:
public function boot()
{
parent::boot();
Route::bind('user', function ($value) {
return App\User::withTrashed()->find($value);
});
}