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(); كيف أستطيع حل هذه المشكلة؟ اقتباس
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 اقتباس
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 اقتباس
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; إذا أردت القراءة أكثر يمكنك زيارة الرابط من هنا اقتباس
السؤال
Amir Alsaeed
لقد قمت بتحميل المكتبة sluggable في لارافل، ولكن عند إضافة الكود إلى المودل:
لا يتم حفظ slug ويتم تجاهل الكود السابق. مع العلم أنه إذا استخدمت الدالة التالية بشكل مباشر أحصل على النتيجة:
$product->sluggify();
كيف أستطيع حل هذه المشكلة؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.