getConnectionName() 공개 메소드

Get the current connection name for the model.
public getConnectionName ( ) : string
리턴 string
예제 #1
1
 /**
  * Get the hydrated models without eager loading.
  *
  * @param  array  $columns
  * @return \Illuminate\Database\Eloquent\Model[]
  */
 public function getModels($columns = ['*'])
 {
     $results = $this->query->get($columns);
     $connection = $this->model->getConnectionName();
     return $this->model->hydrate($results, $connection)->all();
 }
예제 #2
0
 /**
  * Get the current connection name for the model.
  *
  * @return string
  */
 public function getConnectionName()
 {
     $tenant = tenant();
     if (is_null($tenant)) {
         return parent::getConnectionName();
     }
     return array_get($tenant, 'id');
 }
예제 #3
0
 /**
  * @return string
  */
 public function getConnectionName()
 {
     // overrules connection name in case of using multi tenancy
     if (env('HYN_MULTI_TENANCY_HOSTNAME') && is_null($this->connection)) {
         return 'tenant';
     }
     // fallback to parent method
     return parent::getConnectionName();
 }
예제 #4
0
 /**
  * Create a new pivot model instance.
  *
  * @param  \Illuminate\Database\Eloquent\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();
 }
예제 #5
0
 /**
  * Get the hydrated models without eager loading.
  *
  * @param  array  $columns
  * @return array|static[]
  */
 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 Eloquent 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;
 }
예제 #6
0
파일: Model.php 프로젝트: scrubmx/framework
 /**
  * Determine if two models have the same ID and belong to the same table.
  *
  * @param  \Illuminate\Database\Eloquent\Model  $model
  * @return bool
  */
 public function is(Model $model)
 {
     return $this->getKey() === $model->getKey() && $this->getTable() === $model->getTable() && $this->getConnectionName() === $model->getConnectionName();
 }
예제 #7
0
 /**
  * Generate a cache key
  *
  * @return string
  */
 public function generateCacheKey()
 {
     return md5($this->model->getConnectionName() . $this->builder->toSql() . serialize($this->builder->getBindings()));
 }
예제 #8
0
 /**
  * Hydrate related models.
  *
  * @param  Model    $related
  * @param  Relation $relation
  * @param  array    $results
  * @return array
  */
 protected function hydrate(Model $related, Relation $relation, array $results)
 {
     $models = $related->hydrate($results, $related->getConnectionName())->all();
     if (count($models) > 0 && method_exists($relation, 'hydratePivotRelation')) {
         $r = new ReflectionMethod(get_class($relation), 'hydratePivotRelation');
         $r->setAccessible(true);
         $r->invoke($relation, $models);
     }
     return $models;
 }
예제 #9
0
 /**
  * Add new Value to entity.
  *
  * @param Property $property
  * @param mixed    $value
  *
  * @return Value
  */
 public function addValue(Property $property, $value)
 {
     $instance = self::getType($property->type);
     if ($instance !== null) {
         $v = $instance->newInstance([], false);
     } else {
         $v = new Value();
     }
     $v->setConnection($this->entity->getConnectionName());
     $v->setRelation('property', $property);
     $v->forceFill(['property_id' => $property->getKey(), 'value' => $value]);
     if ($property->multiple) {
         $this->getPropertyValue($property->name)->push($v);
     } else {
         $this->getPropertyValues($property->name)->put($property->name, $v);
     }
     return $v;
 }