This commit is contained in:
2021-10-12 11:32:06 +08:00
parent 4e145cd143
commit 39751ec3c0
+15 -7
View File
@@ -9,12 +9,11 @@ use Database\Base\ConditionClassMap;
use Database\Condition\HashCondition; use Database\Condition\HashCondition;
use Database\Condition\OrCondition; use Database\Condition\OrCondition;
use Database\Query; use Database\Query;
use Database\SqlBuilder;
use Exception; use Exception;
use JetBrains\PhpStorm\Pure; use JetBrains\PhpStorm\Pure;
use ReflectionException;
use Kiri\Exception\NotFindClassException; use Kiri\Exception\NotFindClassException;
use Kiri\Kiri; use Kiri\Kiri;
use ReflectionException;
/** /**
@@ -148,7 +147,7 @@ trait Builder
* @param $_tmp * @param $_tmp
* @return string * @return string
* @throws NotFindClassException * @throws NotFindClassException
* @throws ReflectionException * @throws ReflectionException|Exception
*/ */
private function resolveCondition($field, $condition, $_tmp): string private function resolveCondition($field, $condition, $_tmp): string
{ {
@@ -179,13 +178,22 @@ trait Builder
if (!is_string($condition[2])) { if (!is_string($condition[2])) {
$condition[2] = $this->_hashMap($condition[2]); $condition[2] = $this->_hashMap($condition[2]);
} }
$builder = Kiri::createObject(['class' => OrCondition::class, 'value' => $condition[2], 'column' => $condition[1], 'oldParams' => $array]); $builder = Kiri::getDi()->get(OrCondition::class);
$builder->setValue($condition[2]);
$builder->setColumn($condition[1]);
$builder->oldParams = $array;
} else if (isset(ConditionClassMap::$conditionMap[$stroppier])) { } else if (isset(ConditionClassMap::$conditionMap[$stroppier])) {
$defaultConfig = ConditionClassMap::$conditionMap[$stroppier]; $defaultConfig = ConditionClassMap::$conditionMap[$stroppier];
$create = array_merge($defaultConfig, ['column' => $condition[1], 'value' => $condition[2]]);
$builder = Kiri::createObject($create); $class = $defaultConfig['class'];
unset($defaultConfig['class']);
$builder = Kiri::getDi()->get($class, [], $defaultConfig);
$builder->setValue($condition[2]);
$builder->setColumn($condition[1]);
} else { } else {
$builder = Kiri::createObject(['class' => HashCondition::class, 'value' => $condition]); $builder = Kiri::getDi()->get(HashCondition::class);
$builder->setValue($condition);
} }
$array[] = $builder->builder(); $array[] = $builder->builder();