mazpaijo/yii2-querybuilder

Yii2框架扩展,用于与jQuery QueryBuilder协同工作

1.0.0 2015-07-16 20:42 UTC

This package is auto-updated.

Last update: 2024-09-12 17:12: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": "*"

如何使用

视图:

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