اذهب إلى المحتوى

السؤال

نشر

يوجد حقل في الداتابيز عبارة عن مسار ل صورة كيف يمكن التعامل معه باستخدام ايطار العمل laravel مثال 

مجموعة فعاليات لها صور احتاج استيرادها وعرضها على الموقع 

Recommended Posts

  • 0
نشر

بالطبع فإنه هذا يخضع بدرجة أولى لمسار حفظ هاته الصور في قرص التخزين الخاص بخادمك، فإن كنت تستخدم قرص التخزين المحلي في لارافيل فإنك ستحتاج أولا انشاء الوصلة الرمزية عن طريق تنفيذ الامر: 

php artisan storage:link

ثم بعد ذلك، استعمال الوظيفة asset لتكوين رابط أصول كامل يشير الى مسار الصورة الكاملة. على سبيل:

$path = asset($user->avatar);

فإن كانت مسارات الصور تخزن في مجلد avatars في مجلد storage/app/public/ وفي قاعدة البيانات كـ:

avatars/image_file_name_1.ext
avatars/image_file_name_2.ext
avatars/image_file_name_3.ext

فإن طريق قراءة المسار ستكون وفق السابق: 

$path = asset($user->avatar);

فإن كانت قيمة user->avatar توافق avatars/image_file_name_1.ext فإن المعاد عن الوظيفة asset سيكون السلسلة النصية:

https://your_domain.co/avatars/image_file_name_1.ext

وهكذا..

  • 0
نشر

1- تأكد من أن الحقل الذي يحتوي على مسار الصور في قاعدة البيانات يحتوي على المسار الصحيح للصورة.

2- في النموذج الذي تريد استخدامه لاسترداد الصور ، قم بإضافة الحقل الذي يحتوي على مسار الصور إلى الخاصية الحماية fillable، مثلا، إذا كان اسم الحقل هو "image_path"، يمكنك إضافته كالتالي:

protected $fillable = ['image_path'];

3- في العرض ، يمكنك استخدام المسار المخزن في الحقل لعرض الصورة. يمكنك استخدام الدالة asset() للوصول إلى الملف. على سبيل المثال، يمكنك استخدام الكود التالي لعرض الصورة:

<img src="{{ asset($event->image_path) }}" alt="Event Image">

في  المثال، يتم عرض صورة الحدث المخزنة في حقل الصورة في قاعدة البيانات باستخدام الدالة asset() في Laravel.

وبهذه الطريقة، يمكنك استيراد الصور من قاعدة البيانات MySQL باستخدام Laravel وعرضها في موقع الويب الخاص بك.

والحل الذي قدمته لك والحل الذي قدمه لك عدنان، يقدمان حلولًا مختلفة لنفس المشكلة ولكن بأساليب مختلفة.

إجابة عدنان تشير إلى أنه يتعين عليك أولاً التأكد من أن الحقل الذي يحتوي على مسار الصور في قاعدة البيانات يحتوي على المسار الصحيح للصورة. بعد ذلك، يمكنك استخدام الدالة asset() في Laravel لإنشاء رابط كامل للصورة.

أما الإجابة الخاصة بي، فتقدم حلاً يتضمن إضافة الحقل الذي يحتوي على مسار الصور إلى الخاصية الحماية fillable في نموذج Laravel الخاص بك. هذا الإجراء يساعد على حماية نموذجك من أي هجمات قد تتعرض لها.

أيضًا كودًا يمكن استخدامه لعرض الصورة المخزنة في حقل الصورة في قاعدة البيانات باستخدام الدالة asset() في Laravel.

وعامةً، الفرق الرئيسي بين الإجابتين هو أن الإجابة الأولى لا تشير إلى إضافة الحقل الذي يحتوي على مسار الصور إلى الخاصية الحماية fillable في نموذج Laravel الخاص بك، في حين أن الإجابة الخاصة بي تشير إلى هذا الإجراء.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...