Exemplo n.º 1
0
 /**
  * @param   array   $options
  *
  * @return  LazyLoader
  */
 public function getLazyLoader(array $options)
 {
     $fk = $this->getForeignKey();
     $pk = $this->owner->getPrimaryKey();
     $ids = $options['ids'];
     $with = $options['with'];
     $callback = $options['callback'];
     $immediate = $options['immediate'];
     $select = new Select($this->compiler, $this->model->getTable());
     $select->where($fk)->in($ids);
     if ($callback !== null) {
         $callback($select);
     }
     $query = (string) $select;
     $params = $select->getCompiler()->getParams();
     return new LazyLoader($this->connection, $query, $params, $with, $immediate, $this->isReadOnly, $this->hasMany(), get_class($this->model), $fk, $pk);
 }
Exemplo n.º 2
0
 public function getLazyLoader(array $options)
 {
     $fk = $this->getForeignKey();
     $pk = $this->owner->getPrimaryKey();
     $ids = $options['ids'];
     $with = $options['with'];
     $callback = $options['callback'];
     $immediate = $options['immediate'];
     $junctionTable = $this->getJunctionTable();
     $junctionKey = $this->getJunctionKey();
     $joinTable = $this->model->getTable();
     $joinColumn = $this->model->getPrimaryKey();
     $select = new Select($this->compiler, $junctionTable);
     $linkKey = 'hidden_' . $junctionTable . '_' . $fk;
     $select->join($joinTable, function ($join) use($junctionTable, $junctionKey, $joinTable, $joinColumn) {
         $join->on($junctionTable . '.' . $junctionKey, $joinTable . '.' . $joinColumn);
     })->where($junctionTable . '.' . $fk)->in($ids)->select(array($joinTable . '.*', $junctionTable . '.' . $fk => $linkKey));
     if ($callback !== null) {
         $callback($select);
     }
     $query = (string) $select;
     $params = $select->getCompiler()->getParams();
     return new LazyLoader($this->connection, $query, $params, $with, $immediate, $this->isReadOnly, $this->hasMany(), get_class($this->model), $linkKey, $pk);
 }