riskivy / yii2-querybuilder

Yii2 框架扩展,用于与 jQuery QueryBuilder 一起工作

安装次数: 8

依赖项: 0

建议者: 0

安全: 0

星星: 0

观察者: 0

分支: 34

开放问题: 0

类型:yii2-extension

1.1.1 2023-03-21 09:12 UTC

This package is auto-updated.

Last update: 2024-09-21 12:23:32 UTC


README

这是 Yii 2 的 jQuery QueryBuilder 扩展。它通过 Yii 小部件封装 QueryBuilder 组件,因此使得在 Yii 应用程序中使用 QueryBuilder 组件变得极其简单。

Yii2 Latest Stable Version Scrutinizer Code Quality Code Coverage Build Status Code Climate Total Downloads

安装

安装此扩展的最佳方式是通过 composer

可以运行

php composer.phar require --prefer-dist riskivy/yii2-querybuilder "*"

或将以下内容添加到您的 composer.json 文件的 require 部分中。

"riskivy/yii2-querybuilder": "*"

安装命令:

如何使用

该扩展依赖于 bootstrap css,因此需要在 AppAsset 中添加它。

class AppAsset extends AssetBundle {

    ...

    public $depends = [
        ...
        'yii\bootstrap\BootstrapAsset', // or 'yii\bootstrap4\BootstrapAsset'
    ];

}

视图:

use riskivy\querybuilder\QueryBuilderForm;

<?php QueryBuilderForm::begin([
    'rules' => $rules,
    'builder' => [
        'id' => 'query-builder',
        'pluginOptions' => [
            'filters' => [
                ['id' => 'id', 'label' => 'Id', 'type' => 'integer'],
                ['id' => 'name', 'label' => 'Name', 'type' => 'string'],
                ['id' => 'lastName', 'label' => 'Last Name', 'type' => 'string']
            ]
        ]
    ]
 ])?>

    <?= Html::submitButton('Apply'); ?>
    <?= Html::resetButton('Reset'); ?>

<?php QueryBuilderForm::end() ?>

控制器:

use riskivy\querybuilder\Translator;

public function actionIndex()
{
    $query = Customer::find();
    $rules = Json::decode(Yii::$app->request->get('rules'));
    if ($rules) {
        $translator = new Translator($rules);
        $query->andWhere($translator->where())
              ->addParams($translator->params());
    }

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    return $this->render('index', [
        'dataProvider' => $dataProvider,
        'rules' => $rules
    ]);
}