Example #1
0
 /**
  * Save file attributes required for interpolation to model
  *
  * @param string|Illuminate\Database\Eloquent\Model $model
  * @param Ideil\LaravelFileOre\Interpolator\InterpolatorResult $input
  *
  * @return Illuminate\Database\Eloquent\Model
  */
 protected function saveModelData(Model $model, Interpolator\InterpolatorResult $input)
 {
     // prepare data to fill model
     $model_map = $model->getFileAssignMap();
     $model_fields = [];
     foreach ($input->getData() as $field => $value) {
         $model_fields[isset($model_map[$field]) ? $model_map[$field] : $field] = $value;
     }
     // not save, just fill data
     $model->fill($model_fields);
     return $model;
 }
Example #2
0
 /**
  * Full path to stored file
  *
  * @param array|Illuminate\Database\Eloquent\Model $model
  * @param string|null $path_pattern
  *
  * @return string
  */
 public function path($model, $path_pattern = null)
 {
     $pattern = $path_pattern ?: array_get($this->config, 'store.path_pattern', '');
     $model_map = $model instanceof Model ? $model->getFileAssignMap() : [];
     $path = $this->interpolator->resolvePath($pattern, $model, $model_map)->getResult();
     $path = $this->getStoreRootPath() . '/' . ltrim($path, '/');
     return $path;
 }