改名
This commit is contained in:
@@ -86,15 +86,38 @@ trait QueryTrait
|
|||||||
* @return $this
|
* @return $this
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function if(string $condition, string|array $condition1, string|array $condition2): static
|
public function if(string $condition, string $condition1, string|array $condition2): static
|
||||||
{
|
{
|
||||||
$condition1 = (new Sql())->where($condition1)->getCondition();
|
if (!is_string($condition1)) {
|
||||||
$condition2 = (new Sql())->where($condition2)->getCondition();
|
$condition1 = $this->conditionToString($condition1);
|
||||||
|
}
|
||||||
|
if (!is_string($condition2)) {
|
||||||
|
$condition2 = $this->conditionToString($condition2);
|
||||||
|
}
|
||||||
$this->where[] = 'IF(' . $condition . ',' . $condition1 . ',' . $condition2 . ')';
|
$this->where[] = 'IF(' . $condition . ',' . $condition1 . ',' . $condition2 . ')';
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $condition
|
||||||
|
* @return string
|
||||||
|
* @throws NotFindClassException
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
private function conditionToString($condition): string
|
||||||
|
{
|
||||||
|
$newSql = $this->makeNewSqlGenerate();
|
||||||
|
if ($condition instanceof \Closure) {
|
||||||
|
call_user_func($condition, $newSql);
|
||||||
|
} else {
|
||||||
|
$newSql->where($condition);
|
||||||
|
}
|
||||||
|
return $newSql->getCondition();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $bool
|
* @param $bool
|
||||||
* @return $this
|
* @return $this
|
||||||
|
|||||||
Reference in New Issue
Block a user