riskivy / yii2-querybuilder
Yii2 框架扩展,用于与 jQuery QueryBuilder 一起工作
1.1.1
2023-03-21 09:12 UTC
Requires
- mistic100/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
This package is auto-updated.
Last update: 2024-09-21 12:23:32 UTC
README
这是 Yii 2 的 jQuery QueryBuilder 扩展。它通过 Yii 小部件封装 QueryBuilder 组件,因此使得在 Yii 应用程序中使用 QueryBuilder 组件变得极其简单。
安装
安装此扩展的最佳方式是通过 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 ]); }