ManaPHP\Mvc\Model::_exists PHP Метод

_exists() защищенный Метод

Checks if the current record already exists or not
protected _exists ( ) : boolean
Результат boolean
    protected function _exists()
    {
        $primaryKeys = $this->modelsMetadata->getPrimaryKeyAttributes($this);
        if (count($primaryKeys) === 0) {
            return false;
        }
        $conditions = [];
        $bind = [];
        foreach ($primaryKeys as $attributeField) {
            if (!isset($this->{$attributeField})) {
                return false;
            }
            $bindKey = $attributeField;
            $conditions[] = $attributeField . ' =:' . $bindKey;
            $bind[$bindKey] = $this->{$attributeField};
        }
        if (is_array($this->_snapshot)) {
            $primaryKeyEqual = true;
            foreach ($primaryKeys as $attributeField) {
                if (!isset($this->_snapshot[$attributeField]) || $this->_snapshot[$attributeField] !== $this->{$attributeField}) {
                    $primaryKeyEqual = false;
                }
            }
            if ($primaryKeyEqual) {
                return true;
            }
        }
        $sql = 'SELECT COUNT(*) as [row_count]' . ' FROM [' . $this->getSource() . '] WHERE ' . implode(' AND ', $conditions);
        $num = $this->getWriteConnection()->fetchOne($sql, $bind, \PDO::FETCH_ASSOC);
        return $num['row_count'] > 0;
    }