定制 tomaskemok/custom-nova-dependent-filter 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱: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
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固