tomaskemok/custom-nova-dependent-filter 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tomaskemok/custom-nova-dependent-filter

Composer 安装命令:

composer require tomaskemok/custom-nova-dependent-filter

包简介

Filtro dependiente y searchable para Laravel Nova con soporte para múltiples dependencias.

README 文档

README

Este paquete proporciona un filtro personalizado para Laravel Nova que permite crear filtros dependientes con funcionalidad searchable. Soporta múltiples dependencias entre filtros.

Instalación

  1. Clona o descarga este repositorio en la carpeta nova-components/DependentSearchableFilter de tu proyecto Laravel.
  2. Ejecuta composer install dentro de la carpeta del paquete si es necesario.
  3. Compila los assets JS/Vue del filtro:
    • Instala dependencias JS:
      cd nova-components/DependentSearchableFilter
      npm install
    • Compila los assets:
      npm run dev
      # o para producción
      npm run prod
  4. Registra el filtro en tu recurso Nova.

Uso

Ejemplo avanzado de integración

  1. Crea los filtros en app/Nova/Filters:
use DependentSearchableFilter\DependentSearchableFilter;
use Illuminate\Http\Request;
use App\Models\Category;
use App\Models\Subcategory;

class CategoryFilter extends DependentSearchableFilter
{
    public function __construct()
    {
        parent::__construct([]); // Sin dependencias
    }

    public function options(Request $request)
    {
        return Category::pluck('name', 'id')->toArray();
    }
}

class SubcategoryFilter extends DependentSearchableFilter
{
    public function __construct()
    {
        parent::__construct(['category']); // Depende de CategoryFilter
    }

    public function options(Request $request)
    {
        $categoryId = $request->get('category');
        if ($categoryId) {
            return Subcategory::where('category_id', $categoryId)->pluck('name', 'id')->toArray();
        }
        return [];
    }
}
  1. Registra los filtros en tu recurso Nova:
use App\Nova\Filters\CategoryFilter;
use App\Nova\Filters\SubcategoryFilter;

public function filters(Request $request)
{
    return [
        new CategoryFilter(),
        new SubcategoryFilter(),
    ];
}

Solución de errores comunes

  • Si ves errores de clases desconocidas (Illuminate\Http\Request, App\Models\Category, etc.), asegúrate de tener los modelos y dependencias correctas en tu proyecto Laravel.
  • Instala dependencias con:
    • composer require laravel/nova
    • composer install
  • Si usas modelos personalizados, reemplaza Category y Subcategory por los tuyos.

Personalización

  • Puedes definir la lógica de opciones en el método options del filtro.
  • El filtro es searchable y actualiza sus opciones dinámicamente según los valores seleccionados en los filtros padres.

Estructura

  • src/DependentSearchableFilter.php: Filtro Nova PHP.
  • resources/js/components/DependentSearchableFilter.vue: Componente Vue para la UI.

Contribuciones

¡Se aceptan PRs y sugerencias!

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-02