Ejemplo n.º 1
0
 /**
  * Recupera um objeto pela chave primaria ou chave => valor
  * 
  * @author Hugo Ferreira da Silva
  * @link http://www.hufersil.com.br
  * @param mixed $pk Nome da chave ou valor
  * @param mixed $pkValue Valor do campo
  * @param boolean $allRows Se retorna todas as linhas ou somente uma
  * @return array Dados encontrados em formato de array associativo
  */
 public function get($pk, $pkValue = null, $allRows = false)
 {
     $this->obj->reset();
     // se a chave (que agora eh o valor) for array
     if (is_array($pk)) {
         // pega a lista de chaves primarias
         $pks = $this->obj->_getPrimaryKeys();
         // pega a primeira
         $first = array_shift($pks);
         // faz a consulta
         $this->obj->where('{' . $first['name'] . '} IN (?)', $pk)->find(true);
         // se o valor nao eh array
     } else {
         if (!is_array($pkValue)) {
             // faz a consulta normal
             $this->obj->get($pk, $pkValue);
             // se o valor for array
         } else {
             $this->obj->where('{' . $pk . '} IN (?)', $pkValue)->find(true);
         }
     }
     // resultado
     $result = array();
     // se for para retornar todas as linhas
     if ($allRows) {
         // retorna o allToArray
         $result = $this->obj->allToArray();
         // do contrario
     } else {
         // retorna somente a primeira
         $result = $this->obj->toArray();
     }
     return $result;
 }
Ejemplo n.º 2
0
 /**
  * Retorna a representacao do node como array
  * 
  * @author Hugo Ferreira da Silva
  * @param boolean $withChilds Indica se tambem e para pegar os nos filhos ou nao
  * @return array
  */
 public function toArray($withChilds = true)
 {
     $node = $this->obj->toArray();
     $node['childNodes'] = array();
     if ($withChilds) {
         $list = $this->getChildNodes();
         while ($child = $list->nextSibling()) {
             $node['childNodes'][] = $child->toArray($withChilds);
         }
     }
     return $node;
 }