Baum\SetValidator::validateBounds PHP Метод

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

Validates bounds of the nested tree structure. It will perform checks on the lft, rgt and parent_id columns. Mainly that they're not null, rights greater than lefts, and that they're within the bounds of the parent.
protected validateBounds ( ) : boolean
Результат boolean
    protected function validateBounds()
    {
        $connection = $this->node->getConnection();
        $grammar = $connection->getQueryGrammar();
        $tableName = $this->node->getTable();
        $primaryKeyName = $this->node->getKeyName();
        $parentColumn = $this->node->getQualifiedParentColumnName();
        $lftCol = $grammar->wrap($this->node->getLeftColumnName());
        $rgtCol = $grammar->wrap($this->node->getRightColumnName());
        $qualifiedLftCol = $grammar->wrap($this->node->getQualifiedLeftColumnName());
        $qualifiedRgtCol = $grammar->wrap($this->node->getQualifiedRightColumnName());
        $qualifiedParentCol = $grammar->wrap($this->node->getQualifiedParentColumnName());
        $whereStm = "({$qualifiedLftCol} IS NULL OR\n      {$qualifiedRgtCol} IS NULL OR\n      {$qualifiedLftCol} >= {$qualifiedRgtCol} OR\n      ({$qualifiedParentCol} IS NOT NULL AND\n        ({$qualifiedLftCol} <= parent.{$lftCol} OR\n          {$qualifiedRgtCol} >= parent.{$rgtCol})))";
        $query = $this->node->newQuery()->join($connection->raw($grammar->wrapTable($tableName) . ' AS parent'), $parentColumn, '=', $connection->raw('parent.' . $grammar->wrap($primaryKeyName)), 'left outer')->whereRaw($whereStm);
        return $query->count() == 0;
    }