atk4\data\Persistence_SQL::initQueryConditions PHP Method

initQueryConditions() public method

Will apply conditions defined inside $m onto query $q.
public initQueryConditions ( Model $m, atk4\dsql\Query $q ) : atk4\dsql\Query
$m Model
$q atk4\dsql\Query
return atk4\dsql\Query
    public function initQueryConditions($m, $q)
    {
        if (!isset($m->conditions)) {
            // no conditions are set in the model
            return $q;
        }
        foreach ($m->conditions as $cond) {
            // Options here are:
            // count($cond) == 1, we will pass the only
            // parameter inside where()
            if (count($cond) == 1) {
                $q->where($cond[0]);
                continue;
            }
            if (is_string($cond[0])) {
                $cond[0] = $m->getElement($cond[0]);
            }
            if (count($cond) == 2) {
                if ($cond[0] instanceof Field) {
                    $cond[1] = $this->typecastSaveField($cond[0], $cond[1]);
                }
                $q->where($cond[0], $cond[1]);
            } else {
                if ($cond[0] instanceof Field) {
                    $cond[2] = $this->typecastSaveField($cond[0], $cond[2]);
                }
                $q->where($cond[0], $cond[1], $cond[2]);
            }
        }
        return $q;
    }