Amir Alsaeed نشر 19 أبريل 2021 أرسل تقرير مشاركة نشر 19 أبريل 2021 لقد قمت بتحميل المكتبة sluggable في لارافل، ولكن عند إضافة الكود إلى المودل: <?php use Cviebrock\EloquentSluggable\SluggableInterface; use Cviebrock\EloquentSluggable\SluggableTrait; class Item extends Eloquent { use SluggableTrait; protected $sluggable = array( 'build_from' => 'title', 'save_to' => 'slug', ); } لا يتم حفظ slug ويتم تجاهل الكود السابق. مع العلم أنه إذا استخدمت الدالة التالية بشكل مباشر أحصل على النتيجة: $product->sluggify(); كيف أستطيع حل هذه المشكلة؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Adnane Kadri نشر 19 أبريل 2021 أرسل تقرير مشاركة نشر 19 أبريل 2021 (معدل) مرحبا . إن كانت حاجتك لعمل slug فأقترح إستعمال الدالة slug ضمن المساعد Str كالتالي : <?php use Illuminate\Support\Str; $slug = Str::slug('make a good slug', '-'); // make-a-good-slug لكن ان احتجت تعميم العملية على الكثير من الموديلات و الاستفادة من باقي الـأشياء التي تقدمها مكتبة cviebrock/eloquent-sluggable فتأكد أن تستعمل الTrait الصحيح <?php use Cviebrock\EloquentSluggable\Sluggable; .. class myModel extends Model{ use Sluggable; .. } وبدل تعريف الsluggable attributes في attribute يجب عليك استعمال الabstract method التي اسمها sluggable() ضمن الTrait المستعمل , ومن ثم تعريفها بداخلها فيكون : <?php use Cviebrock\EloquentSluggable\Sluggable; class myModel extends Model { use Sluggable; /** * قم بتعريف القيم هنا * * @return array */ public function sluggable() { return [ 'slug' => [ 'slugable_column' => 'title' ] ]; } } و الان قم بتجريب إنشاء item جديد وسيتم حفظ الslug بشكل عادي . تم التعديل في 19 أبريل 2021 بواسطة Adnane Kadri 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Sam Ahw نشر 19 أبريل 2021 أرسل تقرير مشاركة نشر 19 أبريل 2021 يجب عليك إضافة implements SluggableInterface ضمن المودل الذي تقوم باستخدامه: class Item extends Eloquent implements SluggableInterface { .... } وبعدها ستتمكن من استخدامها بالشكل التالي: $item = Item::create([ 'title' => 'This is an item', ]); echo $item->slug; 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 بلال زيادة نشر 20 أبريل 2021 أرسل تقرير مشاركة نشر 20 أبريل 2021 يجب وضع implements SluggableInterfac في المودل الذي تستخدمه كما في الشكل التالي class Post extends Eloquent implements SluggableInterface { } ومن ثم يمكن استخدامها بهذا الشكل $post = Post::create([ 'title' => 'My Awesome Blog Post', ]); ثم يمكن استرداد slug echo $post->slug; إذا أردت القراءة أكثر يمكنك زيارة الرابط من هنا اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Amir Alsaeed
لقد قمت بتحميل المكتبة sluggable في لارافل، ولكن عند إضافة الكود إلى المودل:
لا يتم حفظ slug ويتم تجاهل الكود السابق. مع العلم أنه إذا استخدمت الدالة التالية بشكل مباشر أحصل على النتيجة:
$product->sluggify();
كيف أستطيع حل هذه المشكلة؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.