paoloBRANDIT/yii2-querybuilder

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

安装: 6

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 34

类型:yii2-extension

1.0.2 2019-05-02 18:57 UTC

This package is auto-updated.

Last update: 2024-09-09 02:59:56 UTC


README

这是 Yii 2 的 jQuery QueryBuilder 扩展。它封装了 QueryBuilder 组件为 Yii 小部件,因此使在 Yii 应用程序中使用 QueryBuilder 组件变得非常容易

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

安装

安装此扩展的首选方法是通过 composer

运行以下命令:

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

"leandrogehlen/yii2-querybuilder": "*"

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

如何使用

视图:

use leandrogehlen\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 leandrogehlen\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
    ]);
}