Laravel Backpack软删除条目点击Show按钮出现404,能否正常查看?
在Backpack ShowOperation中显示软删除条目
默认情况下,Backpack的Show操作查询不会包含软删除的模型,所以访问已被软删除的条目时会返回404。要实现显示软删除条目,可以按以下步骤修改:
- 确保模型启用软删除:你的模型必须已经引入
SoftDeletestrait,示例代码如下:
use Illuminate\Database\Eloquent\SoftDeletes; class YourModel extends Model { use SoftDeletes; }
- 重写CrudController的show方法:在对应资源的CrudController中,重写
show方法,让查询包含软删除记录:
public function show($id) { $this->crud->setOperation('show'); // 加入withTrashed(),让查询包含软删除模型 $this->crud->query = $this->crud->query->withTrashed(); return parent::show($id); }
- 可选:添加权限控制:如果需要限制只有特定用户能查看软删除条目,可以在方法中加入权限判断:
public function show($id) { $this->crud->setOperation('show'); if (auth()->user()->hasPermissionTo('view_trashed_entries')) { $this->crud->query = $this->crud->query->withTrashed(); } return parent::show($id); }
- 配合列表页显示:如果希望在列表页能直接点击软删除条目进入Show页面,需要在List操作中也让查询包含软删除记录,或者启用Backpack的
TrashOperation,这样列表页会提供筛选已删除条目的选项,点击条目即可正常访问Show页面。
内容的提问来源于stack exchange,提问作者Liju
相关产品推荐
相关产品推荐

