示例#1
0
 public static function stripMedia($request)
 {
     $result = [];
     $regex = '/^media_id_/';
     $request = $request instanceof Request ? $request->all() : (is_array($request) ? $request : []);
     foreach (array_keys($request) as $key) {
         switch ($key) {
             case preg_match($regex, $key) === 1:
                 $media_id = preg_replace($regex, '', $key);
                 if (intval($request[$key]) !== 1) {
                     Media::destroy($media_id);
                 } elseif (($media = Media::find($media_id)) instanceof Media) {
                     $result[] = $media;
                 }
                 break;
             case $key === 'media_new' && ($file = $request[$key]) instanceof UploadedFile && $file->isValid():
                 $fileName = $file->getClientOriginalName();
                 if (pathinfo($fileName, PATHINFO_FILENAME) === '') {
                     $fileName = 'file' . $fileName;
                 }
                 if (pathinfo($fileName, PATHINFO_EXTENSION) === '') {
                     $fileName .= '.' . (trim($file->guessClientExtension()) !== '' ? $file->guessClientExtension() : $file->guessExtension());
                 }
                 $result[] = Media::store(file_get_contents($file->getPathName()), $file->getMimeType(), $fileName);
         }
     }
     return $result;
 }
示例#2
0
 public static function stripPropertyDetailOptions(Request $request)
 {
     $result = [];
     $regex = ['existing' => '/^issue_detail_/', 'new' => '/^issue_detail_new_/'];
     $request = $request instanceof Request ? $request->all() : (is_array($request) ? $request : []);
     foreach (array_keys($request) as $key) {
         $striped_key = preg_replace($regex['existing'], '', $key);
         preg_match('/\\d+/', $striped_key, $detail_id);
         if (sizeof($detail_id) < 1) {
             continue;
         }
         $detail_id = intval($detail_id[0]) === 0 ? 'new' : intval($detail_id[0]);
         if (!isset($result[$detail_id])) {
             $result[$detail_id] = ['media' => []];
         }
         $field = preg_replace('/\\d_/', '', $striped_key);
         if (preg_match('/^(media_id_|media_new)/', $field) === 1) {
             $media = Media::find($media_id = intval(preg_replace('/^media_id_/', '', $field)));
             if (($file = $request[$key]) instanceof UploadedFile && $file->isValid()) {
                 $fileName = $file->getClientOriginalName();
                 if (pathinfo($fileName, PATHINFO_FILENAME) === '') {
                     $fileName = 'file' . $fileName;
                 }
                 if (pathinfo($fileName, PATHINFO_EXTENSION) === '') {
                     $fileName .= '.' . (trim($file->guessClientExtension()) !== '' ? $file->guessClientExtension() : $file->guessExtension());
                 }
                 $media = Media::store(file_get_contents($file->getPathName()), $file->getMimeType(), $fileName);
             }
             if ($media instanceof Media && boolval($request[$key]) === true) {
                 $result[$detail_id]['media'][$media->id] = $media;
             }
         } else {
             $result[$detail_id][$field] = $request[$key];
         }
     }
     // endforeach
     return $result;
 }