ariefyudia/yii2-querybuilder

Yii2 框架的 jQuery QueryBuilder 扩展

安装次数: 38

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分叉: 34

类型:yii2-extension

dev-master 2023-10-17 15:59 UTC

This package is not auto-updated.

Last update: 2024-10-01 20:00:32 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 "*"

或将其添加到您的 composer.json 文件的 require 部分:

"leandrogehlen/yii2-querybuilder": "*"

to the require section of your composer.json file.

如何使用

视图:

use leandrogehlen\querybuilder\QueryBuilderForm;

<?php QueryBuilderForm::begin([
    'rules' => $rules,
    'builder' => [
        'id' => 'query-builder',
        '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
      ]);
}