Example #1
0
 /**
  * @inheritdoc
  */
 public function fill($attributes)
 {
     parent::fill($attributes);
     if ($this->isSensitive() && array_has($attributes, 'value')) {
         $this->value = Crypt::encrypt($this->value);
     }
     return $this;
 }
Example #2
0
 /**
  * Model getters test
  *
  * @return void
  */
 public function testModelGet()
 {
     $project_data = $this->stack_model->get('environment.project.');
     $project_model = $this->stack_model->get('environment.project');
     $stack_data = $this->stack_model->get();
     $stack_name = $this->stack_model->name;
     $this->assertEquals(['name' => 'highcore'], $project_data);
     $this->assertInstanceOf('\\Highcore\\Models\\Project', $project_model);
     $this->assertEquals(array_keys($this->stack_model->toArray()), array_keys($stack_data));
     $this->assertEquals($this->stack_model->get('name'), $stack_name);
 }
 /**
  * @param string $class_slug Model class name
  * @param mixed|array $parameters Array of parameters to use in where clause
  * @param array $relations Array of relations with parameters as keys.
  *                         Each relation provides key and relation path for QueryBuilder
  * @param string $key Field to be used as a key
  * @return Collection
  */
 protected function getModels($class_slug, $parameters = [], $relations, $key)
 {
     if (!is_array($parameters)) {
         $parameters = ['key' => $parameters];
     }
     $relations_parameters = array_intersect_key($relations, $parameters);
     $model_parameters = array_except($parameters, array_keys($relations_parameters));
     $orm_class = self::getQueryClass($class_slug);
     /** @var Builder $query */
     $query = $orm_class::query();
     foreach ($model_parameters as $parameter => $value) {
         if ($parameter == 'key') {
             $parameter = $key;
         }
         self::where($query, $parameter, $value);
     }
     $query->with(array_map(function ($r) {
         return $r['relation'];
     }, array_values($relations)));
     foreach ($relations_parameters as $parameter => $relation_data) {
         $value = $parameters[$parameter];
         $query->with([$relation_data['relation'] => function ($query) use($key, $value) {
             self::where($query, $key, $value);
         }]);
         $query->whereHas($relation_data['relation'], function ($query) use($key, $value) {
             self::where($query, $key, $value);
         });
     }
     $orm_models = $query->get();
     $models = Collection::make();
     $class = Model::getModelClass($class_slug);
     foreach ($orm_models as $orm_model) {
         $models->push($class::make($orm_model));
     }
     return $models;
 }