heyday / silverstripe-querybuilder
在 SilverStripe 中构建复杂且可组合的查询以检索 ArrayList
1.3.3
2019-11-25 22:01 UTC
Requires
- php: >=5.4.0
- composer/installers: ~1.0
- silverstripe/framework: >=3.1.14 < 3.8.0
This package is auto-updated.
Last update: 2024-08-29 04:08:31 UTC
README
提供了一种在 SilverStripe 中创建灵活且可重用查询的方法。类似于搜索过滤器。
安装(使用 composer)
使用 composer 安装很简单,
在 SilverStripe 项目的根目录下创建或编辑一个 composer.json
文件,并确保以下内容存在。
{ "require": { "heyday/silverstripe-querybuilder": "1.2.*" } }
完成此步骤后,在终端或类似的环境中导航到 SilverStripe 的根目录,并运行 composer install
或 composer update
,具体取决于您是否已经使用 composer。
概述
查询构建器是围绕 SQLQuery
对象的包装器,提供了两种修改 SQLQuery
对象的方法
Heyday\QueryBuilder\Interfaces\QueryModifierInterface
- 闭包,具有函数签名
SQLQuery $query, array $data, QueryBuilderInterface $queryBuilder
用法
实现 QueryModifierInterface
这是一个非常通用的修饰符,您构建的修饰符可能更适合您的模型。
use Heyday\QueryBuilder\Interfaces\QueryBuilderInterface; use Heyday\QueryBuilder\Interfaces\QueryModifierInterface; class LikeModifier extends QueryModifierInterface { protected $column; public function __construct($column) { $this->column = $column; } public function modify(\SQLQuery $query, array $data, QueryBuilderInterface $queryBuilder) { if (isset($data['search']) && $data['search']) { $query->addWhere("{$this->column} LIKE '%{$data['search']}%'"); } } }
使用修饰符与 QueryBuilder
use Heyday\QueryBuilder\QueryBuilder; $qb = new QueryBuilder( 'SiteTree', [new LikeModifier('SiteTree.Title')], ['search' => $request->getVar('q')] ); foreach ($qb as $page) { // Do something with page }
许可证
SilverStripe 查询构建器遵循 MIT 许可证