سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمدجوکار
ارور برای خالی نبودنِ ویدئو، درحالی که خالی نیست
محمدجوکار حل شده توسط محمدجوکار

سلام، متد آپدیت: 

    public function update(UpdateVideoRequest $request, Video $video)
    {
        if($request->hasFile('file'))
        {
            $path = Storage::putFile('/public', $request->file('file'));
            $request->merge([
                'url' => $path,
            ]);
        }
        $video->update($request->all());
        return redirect()->route('videos.show', $video->slug)->with('alert', __('messages.video_edit_success'));
    }

کلس ولیدیشن آپدیت ویدئو ریکوئست:

class UpdateVideoRequest extends StoreVideoRequest
{
    public function rules(): array
    {
        return array_merge(parent::rules(), [
            'slug' => ['required', Rule::unique('videos')->ignore($this->video), 'alpha_dash'],
            'file' => ['file', 'mimetypes:video/mp4', 'nullable', 'max:20000'],
        ]);
    }
}

کلس پرنت: 


class StoreVideoRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     */
    public function authorize(): bool
    {
        return true;
    }
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
     */
    public function rules(): array
    {
        return [
            'name' => ['required'],
            'length' => ['required', 'integer'],
            'slug' => ['required', 'unique:videos,slug', 'alpha_dash'],
            'url' => ['required'],
            'thumbnail' => ['required', 'url'],
            'category_id' => ['required', 'exists:categories,id'],
            'file' => ['required', 'mimetypes:video/mp4', 'max:20000'],
        ];
    }
    protected function prepareForValidation(): void
    {
        $this->merge([
            'slug' => Str::slug($this->slug),
            // 'file' => $this->url,
        ]);
    }
    public function messages()
    {
        return ['file.*' => 'فایل شما باید با تایپ mp4 و کمتر از 20 مگابایت باشد'];
    }
}

تیکه کدِ مربوط به اینپوتِ فایل

<div class="col-md-6">
<label>@lang('videos.url')</label>
<input type="file" name="file" class="form-control">
</div>

 

به اسم فایل گیر میده و هرچی که میخوام ذخیره کنم،‌ ارور میده که فیلد آدرس ویدئو نمی‌تواند خالی باشد.

 

تلاش کردم که عکس قرار بدم ولی سایت ارور میده نمیشه عکس گذاشت... 

 

چون نشد عکس بزارم، پروژه رو قرار میدم اینجا.

تشکر

 

 

 

درست شد

ا/ توی وایت لیستِ مدلِ ویدئو، file رو قرار داده بودم که انگار کار درستی نیست.

۲/ در بخش ولیدیشنِ کلسِ StoreVideoRequest باید url  رو پاک میکردم، که نکرده‌ بودم.

بهترین پاسخ
محمدجوکار ۰۵ تیر ۱۴۰۳، ۱۴:۳۰