mayankjaviya / lara-finder

此包的最新版本(1.0.0)没有可用的许可证信息。

简化数据库中记录的搜索过程

1.0.0 2024-03-13 16:32 UTC

This package is auto-updated.

Last update: 2024-09-14 18:26:22 UTC


README

LaraFinder是一个Laravel包,旨在简化从数据库中搜索数据的流程。它提供了方便的方法来搜索指定列或给定模型的所有列。

安装

您可以通过Composer安装LaraFinder。在终端中运行以下命令

composer require mayankjaviya/lara-finder

用法

use mayankjaviya\LaraFinder\LaraFinder;

// Search for a value in specific columns
$results = LaraFinder::search('App\Models\User', 'John', ['name', 'email']);

// Search for a value across all columns
$results = LaraFinder::searchAll('App\Models\User', 'John');

// Search for a value across all columns except specified ones
$results = LaraFinder::searchAllExcept('App\Models\User', 'John', ['password']);

// It returns an associative array where each key represents a column name and the corresponding value is a collection of search results.
$results = LaraFinder::searchableColumns('App\Models\User', 'John', ['name', 'email']);

// Search for a value across multiple models
$models = ['App\Models\User', 'App\Models\Post'];
$results = LaraFinder::searchInMultipleModel($models, 'John');

// Search for a value within a related model
$results = LaraFinder::searchWithRelation('App\Models\User', 'John', 'App\Models\Post');

方法

search($model, $value, $columns)

  • 描述:在给定模型的指定列中搜索值。
  • 参数:
    • $model:要搜索的模型的完全限定类名。
    • $value:要搜索的值。
    • $columns:要搜索的列名数组。
  • 返回值:搜索结果集合。

searchAll($model, $value)

  • 描述:在给定模型的所有列中搜索值。
  • 参数:
    • $model:要搜索的模型的完全限定类名。
    • $value:要搜索的值。
  • 返回值:搜索结果集合。

searchAllExcept($model, $value, $except)

  • 描述:在给定模型的所有列中搜索值,除了指定的列。
  • 参数:
    • $model:要搜索的模型的完全限定类名。
    • $value:要搜索的值。
    • $except:要排除的列名数组。
  • 返回值:搜索结果集合。

searchableColumns($model, $value, $columns = [])

  • 描述:在给定模型的指定列中搜索值,如果未指定任何列,则在所有列中搜索。
  • 参数:
    • $model:要搜索的模型的完全限定类名。
    • $value:要搜索的值。
    • $columns:(可选) 要搜索的列名数组。如果未提供,则搜索模型的所有列。
  • 返回值:一个关联数组,其中每个键代表列名,对应的值是搜索结果集合。

searchInMultipleModel($models, $value)

  • 描述:允许在多个模型中搜索特定的值。它遍历提供的$models数组中的每个模型,并在指定的列中搜索值。
  • 参数:
    • $models:要搜索的模型类名数组。
    • $value:要搜索的值。
  • 返回值:一个关联数组,其中每个键代表模型类名,对应的值是应用了搜索条件的查询构建器实例。

searchWithRelation($model, $value, $relation)

  • 描述:允许在关联模型中搜索值,同时考虑主模型属性。它使用预加载来加载关联模型,并在主模型及其关联模型中执行搜索。
  • 参数:
    • $model:要搜索的主模型类名。
    • $value:要搜索的值。
    • $relation:要搜索的关联模型类名。
  • 返回值:主模型($model)的实例集合,其中加载了关联模型,并且满足搜索条件。

参数

  • $model:要搜索的模型的完全限定类名。
  • $value:要搜索的值。
  • $columns:(可选) 要搜索的列名数组。如果未提供,则搜索模型的所有列。
  • $except:(可选) 要排除的列名数组。

贡献

欢迎贡献!请随时提交拉取请求或打开问题。

许可证

此包是开源软件,根据MIT许可证授权。