You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Nova列表批量强制删除改软删除的配置位置咨询

Nova Listing

解决步骤

  • 确认模型软删除配置
    业务模型必须正确启用软删除特性:
    在模型类中引入SoftDeletes trait:

    use Illuminate\Database\Eloquent\SoftDeletes;
    
    class YourModel extends Model
    {
        use SoftDeletes;
        // 其他模型逻辑代码
    }
    

    同时对应的数据表需包含deleted_at字段,若未添加可通过迁移文件使用$table->softDeletes()创建。

  • 自定义Nova资源的批量操作
    Laravel Nova会根据列表记录状态自动加载删除操作:若列表包含已软删除的记录,会自动显示“Force Delete Selected”。如果想仅保留软删除的批量操作,在对应Nova资源文件(如app/Nova/YourResource.php)中重写actions方法,手动指定加载的操作:

    use Laravel\Nova\Actions\DeleteAction;
    use Laravel\Nova\Resource;
    
    class YourResource extends Resource
    {
        // 资源其他配置项
    
        public function actions(Request $request)
        {
            return [
                DeleteAction::make()->onlyOnIndex(),
                // 若不需要恢复已软删除记录的功能,可移除下面这行
                // RestoreAction::make()->onlyOnIndex(),
            ];
        }
    }
    
  • 限制列表仅展示正常记录
    如果资源默认查询了已软删除的记录(比如使用withTrashed()),Nova会自动显示强制删除选项。可通过重写资源的indexQuery方法,强制仅加载未删除的记录:

    public static function indexQuery(NovaRequest $request, $query)
    {
        return $query->withoutTrashed();
    }
    

内容的提问来源于stack exchange,提问作者Andy Koe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:42:40