Example #1
0
 /**
  * Factory pattern
  * @param string $name Name of table
  * @return \Lazer\Classes\Database
  * @throws LazerException If there's problems with load file
  */
 public static function table($name)
 {
     Helpers\Validate::table($name)->exists();
     $self = new Database();
     $self->name = $name;
     $self->setFields();
     $self->setPending();
     return $self;
 }
Example #2
0
 /**
  * Process query with joined data
  * @param object $row One row of data
  * @return Database
  */
 protected function join($row)
 {
     $keys['local'] = $this->keys['local'];
     $keys['foreign'] = $this->keys['foreign'];
     if ($this->relationType == 'hasAndBelongsToMany') {
         $join = Database::table($this->getJunction())->groupBy($this->tables['local'] . '_id')->where($this->tables['local'] . '_id', '=', $row->{$keys['local']})->findAll()->asArray(null, $this->tables['foreign'] . '_id');
         if (empty($join)) {
             return array();
         }
         return Database::table($this->tables['foreign'])->where($keys['foreign'], 'IN', $join[$row->{$keys['local']}]);
     }
     return Database::table($this->tables['foreign'])->where($keys['foreign'], '=', $row->{$keys['local']});
 }