Laravel 的列表库

v1.0.2 2024-09-05 08:14 UTC

README

轻松列出资源

安装

在您的 composer.json 文件中添加此包并更新 composer。运行以下命令

composer require tsfcorp/lister

更新 composer 后,服务提供程序将自动注册并启用,同时使用自动发现启用外观

下一步是运行 artisan 命令,将配置引入您的项目

php artisan vendor:publish --provider="TsfCorp\Lister\ListerServiceProvider"

更新 config/lister.php

使用说明

Lister 库可以添加到方法签名中,这样它将通过 DI 容器解析,或者可以像这样实例化

$lister = new Lister(request(), DB::connection());

查询设置必须以这种格式指定

$query_settings = [
    'fields' => "users.*",

    'body' => "FROM users {filters}",

    'filters' => [
        "users.id IN (1,2,3)",
        "users.name LIKE '%{filter_name}%'",
    ],

    'sortables' => [
        'name' => 'asc',
    ],
    
    // optional, you can pass a model reference and the records returned 
    // will be of that type
    
    'model' => User:class,
];

$listing = $lister->make($query_settings)->get();
  • {filters} 关键字必须在 body 参数中指定,以便可以用指定的条件替换。
  • filters 参数中的每个项目都将添加到 WHERE 子句中。如果条件中有指定在大括号中的参数,我们将搜索请求中的该参数,并用找到的值替换参数。

如果使用记住的筛选器和查询字符串清理,则需要在使用的方法顶部添加此内容

if($redirect_url = $lister->getRedirectUrl()) return redirect($redirect_url);