![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/corals-api/Corals/core/Media/Traits/ |
<?php namespace Corals\Media\Traits; use Illuminate\Support\Str; trait MediaControllerTrait { /** * @param $request * @param $model * @param string $key * @return array */ protected function handleAttachments($request, $model, $key = 'attachments'): array { $fileNames = []; foreach ($request->get($key, []) ?? [] as $index => $attachment) { $fileRequestPath = "$key.$index.file"; if ($request->hasFile($fileRequestPath)) { $prefix = Str::slug(class_basename($model)); $root = "$prefix/{$model->id}/$key"; $description = $request->input("$key.$index.description", ''); $media = $model->addMedia($request->file($fileRequestPath)) ->withCustomProperties(['root' => $root, 'description' => $description]) ->toMediaCollection($prefix . '-' . $key); $fileNames[] = $media->file_name; } } return $fileNames; } protected function attachmentsValidation($request, &$rules, &$attributes) { foreach ($request->get('attachments', []) as $index => $attachment) { $rules = array_merge($rules, [ "attachments.{$index}.description" => 'required', "attachments.{$index}.file" => 'required|' . config('media.attachments_validation'), ]); $attributes = array_merge($attributes, [ "attachments.{$index}.description" => 'description', "attachments.{$index}.file" => 'file' ]); } } }