/**
  * Returns an array of uid of the children of $nodeUid.
  *
  * @param  string               $nodeUid            The node uid to look for children.
  *
  * @return string[]
  */
 public function getNativelyNodeChildren($nodeUid)
 {
     $query = $this->createQueryBuilder('s')->select('s._uid', 's._leftnode')->where('s._parent = :node')->addOrderBy('s._leftnode', 'asc')->addOrderBy('s._modified', 'desc')->getQuery()->getSQL();
     $result = $this->getEntityManager()->getConnection()->executeQuery((string) $query, [$nodeUid], [\Doctrine\DBAL\Types\Type::STRING])->fetchAll();
     return Collection::array_column($result, 'uid0');
 }
Example #2
0
 public function testArray_column()
 {
     $mock = ['unused', ['id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe'], ['id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith'], ['id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones'], ['id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe']];
     $this->assertEquals([['id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe'], ['id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith'], ['id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones'], ['id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe']], Collection::array_column($mock));
     $this->assertEquals(['John', 'Sally', 'Jane', 'Peter'], Collection::array_column($mock, 'first_name'));
     $this->assertEquals([2135 => 'John', 3245 => 'Sally', 5342 => 'Jane', 5623 => 'Peter'], Collection::array_column($mock, 'first_name', 'id'));
     $this->assertEquals([2135 => ['id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe'], 3245 => ['id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith'], 5342 => ['id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones'], 5623 => ['id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe']], Collection::array_column($mock, null, 'id'));
 }
 /**
  * Returns an array of uid of the children of $nodeUid
  * 
  * @param  string   $nodeUid       The node uid to look for children
  * @param  string   $classname
  * @param  int      $start
  * @param  int      $limit
  * 
  * @return array
  */
 private function getNodeChildren($nodeUid, $classname, $start = 0, $limit = 1000)
 {
     $query = sprintf('SELECT %s FROM %s WHERE %s = ? ORDER BY %s ASC, %s DESC LIMIT %d, %d', $this->requiredFields['uid'], $this->em->getClassMetadata($classname)->getTableName(), $this->requiredFields['parent_uid'], $this->requiredFields['leftnode'], $this->requiredFields['modified'], $start, $limit);
     $result = $this->em->getConnection()->executeQuery($query, array($nodeUid), array(Type::STRING))->fetchAll();
     return Collection::array_column($result, $this->requiredFields['uid']);
 }