اقوم باستخدام هذه المكتبة لحفظ الصور ولجعلها تتحول تلقائيا لنسختين webp , avif ولكن هناك مشكلة ان الصور يتم حفظها مباشرة
في المجلد Public يتم انشاء ملف باسم الid ويتم الحفظ بداخله النسخة الاساسية ومجلد به النسختين المحولتين كالصورة الموضحة ادناه
على الرغم من انه يجب حفظهن داخل المسار التالي : C:\laragon\www\inspro\storage\app\public\categories ولكنه فارغ لا يتم حفظ شيء بداخله
هذا الكود الذي استخدمه في الموديل
<?php
namespaceApp\Models;useIlluminate\Database\Eloquent\Factories\HasFactory;useIlluminate\Database\Eloquent\Model;useSpatie\MediaLibrary\HasMedia;useSpatie\MediaLibrary\InteractsWithMedia;useSpatie\MediaLibrary\MediaCollections\Models\Media;classCategoryextendsModelimplementsHasMedia{useHasFactory,InteractsWithMedia;protected $fillable =['name','description','photo'];// تسجيل مجموعة الوسائطpublicfunction registerMediaCollections():void{
$this->addMediaCollection('categories')// تحديد اسم المجموعة 'categories'->singleFile();// لضمان حفظ صورة واحدة فقط}// تسجيل التحويلاتpublicfunction registerMediaConversions(Media $media =null):void{
$this->addMediaConversion('webp')->format('webp')->quality(90)->performOnCollections('categories');
$this->addMediaConversion('avif')->format('avif')->quality(90)->performOnCollections('categories');}// علاقة مع النموذج الفرعي SubCategorypublicfunction subCategories(){return $this->hasMany(SubCategory::class);}}
وهذا التابع store داخل الكونترولر
publicfunction store(Request $request){
$validatedData = $request->validate(['name'=>'required|string|max:255','description'=>'nullable|string','photo'=>'nullable|image|mimes:jpg,png,jpeg|max:2048',]);// إنشاء الفئة في قاعدة البيانات
$category =Category::create(['name'=> $validatedData['name'],'description'=> $validatedData['description']??null,]);// التحقق مما إذا كان هناك صورة مرفوعة// رفع الصورة إلى Media Libraryif($request->hasFile('photo')){
$pathToFile = $request->file('photo')->getPathname();// الحصول على المسار الفعلي للصورة
$category->addMedia($pathToFile)->toMediaCollection('categories');// إضافة الصورة إلى Media Collection}// إعادة التوجيه مع رسالة نجاحreturn redirect()->route('categories.index')->with('success','Category created successfully!');}
السؤال
ريماس الياس
اقوم باستخدام هذه المكتبة لحفظ الصور ولجعلها تتحول تلقائيا لنسختين webp , avif ولكن هناك مشكلة ان الصور يتم حفظها مباشرة
في المجلد Public يتم انشاء ملف باسم الid ويتم الحفظ بداخله النسخة الاساسية ومجلد به النسختين المحولتين كالصورة الموضحة ادناه
على الرغم من انه يجب حفظهن داخل المسار التالي : C:\laragon\www\inspro\storage\app\public\categories ولكنه فارغ لا يتم حفظ شيء بداخله
هذا الكود الذي استخدمه في الموديل
وهذا التابع store داخل الكونترولر
11 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.