Baum\Node::getParentColumnName PHP Method

getParentColumnName() public method

Get the parent column name.
public getParentColumnName ( ) : string
return string
    public function getParentColumnName()
    {
        return $this->parentColumn;
    }

Usage Example

Example #1
0
File: Move.php Project: yajra/baum
 /**
  * Runs the SQL query associated with the update of the indexes affected
  * by the move operation.
  *
  * @return int
  */
 public function updateStructure()
 {
     list($a, $b, $c, $d) = $this->boundaries();
     // select the rows between the leftmost & the rightmost boundaries and apply a lock
     $this->applyLockBetween($a, $d);
     $connection = $this->node->getConnection();
     $grammar = $connection->getQueryGrammar();
     $currentId = (int) $this->node->getKey();
     $parentId = (int) $this->parentId();
     $leftColumn = $this->node->getLeftColumnName();
     $rightColumn = $this->node->getRightColumnName();
     $parentColumn = $this->node->getParentColumnName();
     $wrappedLeft = $grammar->wrap($leftColumn);
     $wrappedRight = $grammar->wrap($rightColumn);
     $wrappedParent = $grammar->wrap($parentColumn);
     $wrappedId = $grammar->wrap($this->node->getKeyName());
     $lftSql = "CASE\n      WHEN {$wrappedLeft} BETWEEN {$a} AND {$b} THEN {$wrappedLeft} + {$d} - {$b}\n      WHEN {$wrappedLeft} BETWEEN {$c} AND {$d} THEN {$wrappedLeft} + {$a} - {$c}\n      ELSE {$wrappedLeft} END";
     $rgtSql = "CASE\n      WHEN {$wrappedRight} BETWEEN {$a} AND {$b} THEN {$wrappedRight} + {$d} - {$b}\n      WHEN {$wrappedRight} BETWEEN {$c} AND {$d} THEN {$wrappedRight} + {$a} - {$c}\n      ELSE {$wrappedRight} END";
     $parentSql = "CASE\n      WHEN {$wrappedId} = {$currentId} THEN {$parentId}\n      ELSE {$wrappedParent} END";
     $updateConditions = array($leftColumn => $connection->raw($lftSql), $rightColumn => $connection->raw($rgtSql), $parentColumn => $connection->raw($parentSql));
     if ($this->node->timestamps) {
         $updateConditions[$this->node->getUpdatedAtColumn()] = $this->node->freshTimestamp();
     }
     return $this->node->newNestedSetQuery()->where(function ($query) use($leftColumn, $rightColumn, $a, $d) {
         $query->whereBetween($leftColumn, array($a, $d))->orWhereBetween($rightColumn, array($a, $d));
     })->update($updateConditions);
 }
All Usage Examples Of Baum\Node::getParentColumnName