luckyteam / arraydb-condition
dev-master
2017-03-26 15:16 UTC
Requires (Dev)
- codeception/codeception: ^2.2
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-29 05:01:18 UTC
README
条件 - 应用程序组件,允许以方便的形式在代码中编写条件并执行它。
如何使用?
以任何方便的方式获取条件构建器(ConditionBuilder)。传递注释到ConditionBuilder::build()方法中,并获得条件实例。在需要检查条件的地方使用条件实例。
$builder = new ConditionBuilder(); $condition = $builder->build($notation); $condition->execute($model);
可以创建哪些条件?
- 比较条件
- 基于函数调用的条件
- 哈希条件
- In
- Not
- Between
- Like
- And
- Or
比较条件
/** @var ConditionBuilder $builder */ $condition = $builder->build([ '>', 'attribute1', 1 ]); $condition->execute($model);
比较运算符
"等于", "=", "不等于", "!=", "大于", ">", "大于等于", ">=", "小于", "<", "小于等于", "<="。
基于函数调用的条件
/** @var ConditionBuilder $builder */ $condition = $builder->build(function($model){ return $model->discount > (($model->price + $model->discount) * 0,5); }); $condition->execute($model);
哈希条件
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'attribute1' => ['Foo', 'Bzz'], // На основании этого элемента будет построено IN - условие 'attribute2' => 'value2' ]); $condition->execute($model);
IN条件
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'in', [ 'attribute' => ['Foo', 'Bzz'] ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'in', 'attribute', ['Foo', 'Bzz'] ]); $condition->execute($model);
NOT条件
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'not', [ '>=', 'attribute1' , 100 ] ]); $condition->execute($model);
BETWEEN条件
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'between', [ 'attribute' => [1, 10] ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'between', [ 'attribute' => [1, 10] ], ]); $condition->execute($model);
LIKE条件
/** @var ConditionBuilder $builder */ // Формат для записи условия избранный первоначально $condition = $builder->build([ 'like', [ 'attribute' => "/F.o/" ], ]); // Формат реализованный для соответсвия Yii2 $condition = $builder->build([ 'like', 'attribute', "/F.o/" ]); $condition->execute($model);
AND条件
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'and', [ '>=', 'attribute1' , 1 ], [ 'attribute2' => 'value2' ] ]); $condition->execute($model);
OR条件
/** @var ConditionBuilder $builder */ $condition = $builder->build([ 'or', [ '>=', 'attribute1' , 1 ], [ 'attribute2' => 'value2' ] ]); $condition->execute($model);