锤石/精炼-诺瓦

Refine查询构建器的Laravel Nova集成。

安装量: 42,418

依赖: 0

建议者: 0

安全: 0

星标: 30

关注者: 4

分支: 5

语言:Vue

v0.2.4 2023-10-13 04:04 UTC

This package is auto-updated.

Last update: 2024-09-13 06:20:07 UTC


README

Refine 是一个强大的、可视化的Laravel Nova 3和4查询构建器。Refine是一个付费包,您可以在hammerstone.dev购买。

我们还在hammerstone.dev提供了Laravel(没有Nova)和Ruby on Rails的库。

Refine允许您为每个资源定义可筛选的条件,然后您的用户可以任意组合它们以找到他们想要的确切内容。

// Create a filter called "UserFilter"
class UserFilter extends Filter
{
    public function conditions()
    {
        return [
            // Number condition on the ID column
            NumericCondition::make('id', 'ID'),
            
            // Text condition on the name column
            TextCondition::make('name', 'Name'),
            
            // Boolean condition on the is_subscriber column
            BooleanCondition::make('is_subscriber', 'Subscriber'),
            
            // Option condition on the referral column
            OptionCondition::make('referral', 'Referral Source')
                ->options([
                    'twitter' => 'Twitter',
                    'linkedin' => 'LinkedIn',
                    'fb' => 'Facebook'
                ]),
                
            // Date condition on the created_at column
            DateWithTimeCondition::make('created_at', 'Created At'),
        ];
    }
}

Refine Nova 4 Laravel Nova 4的Refine

Refine Nova 3 Laravel Nova 3的Refine

安装

要使用Refine与Nova,您必须首先要求安装包composer require hammerstone/refine-nova。这将安装hammerstone/refine-laravel。由于refine-laravel是一个付费包,您需要确保在auth.json文件中提供凭证。

集成

在您的app\Filters目录中创建一个UserFilter类。

namespace App\Filters;

use Hammerstone\Refine\Conditions\NumericCondition;
use Hammerstone\Refine\Filter;

class UserFilter extends Filter
{
    public function conditions()
    {
        return [
            NumericCondition::make('id', 'ID'),
            
            // @TODO: Add more conditions
        ];
    }
}

在您的app\Nova\User文件中,您需要添加RefinesModels特性和引用您刚刚创建的筛选器。

use App\Filters\UserFilter;
use Hammerstone\Refine\Nova\RefinesModels;

class User extends Resource
{
    use RefinesModels;
    
    // ...
    
    public static $filter = UserFilter::class;
}

最后,为了在前端显示查询构建器,您需要添加Refine卡片

public function cards(Request $request)
{
    return [
        static::refineCard()
    ];
}

这就完成了!您应该在Nova的用户页面上看到Refine查询构建器。您可以在Refine文档中阅读有关构建筛选器的更多文档。