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

كيف يتم تغيير collection_name ضمن مكتبة spatie في لارافل؟

Amir Alsaeed

السؤال

أحاول تنفيذ الاستعلام التالي لتغيير قيمة collection_name:

$media = Media::where(['model_id' => $id, 'collection_name' => 'clients'])->get();
$media->update([
'collection_name' => 'clients_avatar',
]);

ولكن يظهر لدي الخطأ التالي:

BadMethodCallException Method update does not exist.

فماهي المشكلة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

أولاً: يمكنك التحقق من أن الفورم يحتوي على 

{{method_field('PUT')}}

و تأكد من المسار أنه يشير إلى دالة update في المتحكم, سأضع مثال للتوضيح 

Route::get('media/update/{id}', 'MediaController@update');

أخيرا إزالة دالة get وتغييرها ب first يرجى التجربة و من ثم إخباري بالنتيجة 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

اخى الكريم داله ال get تقوم بإرجاع list of collections لذلك اذا اردت ان تقوم بتعديل collection_name الذى يساوى clients

الى clients_avatar لديك اكثر من حل اول حل وهوا 

$data = Media::where(['model_id' => $id, 'collection_name' => 'clients'])->get();


foreach($data as $media){
  $media->update([
      'collection_name' => 'clients_avatar',
  ]);
}

والحل الاخر هوا ان تسترجع قيمة واحده فقط عن طريق دالة ال first 

$media = Media::where(['model_id' => $id, 'collection_name' => 'clients'])->first();

if($media){
  $media->update([
	'collection_name' => 'clients_avatar',
  ]);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...