leandrogehlen/ yii2-querybuilder
此包已被废弃且不再维护。没有建议的替代包。
Yii2 框架扩展,用于与 jQuery QueryBuilder 一起工作
1.0.4
2021-05-25 19:16 UTC
Requires
- bower-asset/jquery-querybuilder: ~2.4.0
- solutosoft/yii2-plugin: ~1.0.0
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: 4.8.27 || ^5.0 || ^6.0 || ^7.0
README
这是为 Yii 2 定制的 jQuery QueryBuilder 扩展。它以 Yii 小部件的形式封装了 QueryBuilder 组件,因此在 Yii 应用程序中使用 QueryBuilder 组件变得非常简单
安装
安装此扩展的最佳方式是通过 composer。
运行以下命令之一:
php composer.phar require --prefer-dist leandrogehlen/yii2-querybuilder "*"
或
"leandrogehlen/yii2-querybuilder": "*"
将以下内容添加到您的 composer.json
文件的 require 部分:
如何使用
此扩展依赖于 bootstrap css,因此需要在 AppAsset
中添加它
class AppAsset extends AssetBundle { ... public $depends = [ ... 'yii\bootstrap\BootstrapAsset', // or 'yii\bootstrap4\BootstrapAsset' ]; }
视图:
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 ]); }