Esempio n. 1
0
 /**
  *
  * @param \Request $input
  * @return static
  */
 public static function createFromInput(Request $input, $id = null, $save = true)
 {
     $validator = \Validator::make($input->all(), static::$validationRules, static::$validationMessages);
     if ($validator->fails()) {
         throw new \App\Exceptions\Validation($validator);
     }
     $obj = static::findOrNew($id);
     foreach (static::$availableFields as $fieldName) {
         if ($input->has($fieldName)) {
             $obj->setAttribute($fieldName, $input->get($fieldName));
         }
     }
     $imageFields = static::$imageFields;
     foreach ($imageFields as $fieldName) {
         if ($input->hasFile($fieldName)) {
             try {
                 $file = $input->file($fieldName);
                 if (!$file->isValid()) {
                     $validator->errors()->add($fieldName, "Invalid Image");
                     continue;
                 }
                 $dbFile = Image::createFromInput($file);
                 $obj->setAttribute($fieldName, $dbFile->hash);
             } catch (\Exception $ex) {
                 $validator->errors()->add($fieldName, "Invalid Image");
             }
         }
     }
     if ($validator->fails()) {
         throw new \App\Exceptions\Validation($validator);
     }
     if ($save) {
         $obj->save();
     }
     return $obj;
 }