/** * Get the hydrated models without eager loading. * * @param array $columns * @return \Nova\Database\ORM\Model[] */ public function getModels($columns = array('*')) { $results = $this->query->get($columns); $connection = $this->model->getConnectionName(); $models = array(); foreach ($results as $result) { $models[] = $model = $this->model->newFromBuilder($result); $model->setConnection($connection); } return $models; }
/** * Create a new pivot model instance. * * @param \Nova\Database\ORM\Model $parent * @param array $attributes * @param string $table * @param bool $exists * @return void */ public function __construct(Model $parent, $attributes, $table, $exists = false) { parent::__construct(); // $this->setRawAttributes($attributes, true); $this->setTable($table); $this->setConnection($parent->getConnectionName()); // $this->parent = $parent; $this->exists = $exists; $this->timestamps = $this->hasTimestampAttributes(); }
/** * Create a new pivot model instance. * * @param \Nova\Database\ORM\Model $parent * @param array $attributes * @param string $table * @param bool $exists * @return void */ public function __construct(Model $parent, $attributes, $table, $exists = false) { parent::__construct(); // The pivot model is a "dynamic" model since we will set the tables dynamically // for the instance. This allows it work for any intermediate tables for the // many to many relationship that are defined by this developer's classes. $this->setRawAttributes($attributes, true); $this->setTable($table); $this->setConnection($parent->getConnectionName()); // We store off the parent instance so we will access the timestamp column names // for the model, since the pivot model timestamps aren't easily configurable // from the developer's point of view. We can use the parents to get these. $this->parent = $parent; $this->exists = $exists; $this->timestamps = $this->hasTimestampAttributes(); }
/** * Get the hydrated models without eager loading. * * @param array $columns * @return \Nova\Database\ORM\Model[] */ public function getModels($columns = array('*')) { // First, we will simply get the raw results from the query builders which we // can use to populate an array with ORM models. We will pass columns // that should be selected as well, which are typically just everything. $results = $this->query->get($columns); $connection = $this->model->getConnectionName(); $models = array(); // Once we have the results, we can spin through them and instantiate a fresh // model instance for each records we retrieved from the database. We will // also set the proper connection name for the model after we create it. foreach ($results as $result) { $models[] = $model = $this->model->newFromBuilder($result); $model->setConnection($connection); } return $models; }