توفر هذه الحزمة سلوكًا قابلاً للتمييز لنماذجك. بعد تثبيت الحزمة، الشيء الوحيد الذي عليك فعله هو إضافة سمة HasTags
إلى نموذج Eloquent لجعله قابلاً للتمييز.
لكننا لم نتوقف عند إمكانيات وضع العلامات العادية التي تجدها في كل حزمة. تأتي علامات Laravel مع البطاريات المضمنة. يتميز بدعم ترجمة العلامات وأنواع العلامات المتعددة وقدرات الفرز.
ستجد الوثائق على https://spatie.be/docs/laravel-tags.
فيما يلي بعض أمثلة التعليمات البرمجية:
// تطبيق سمة HasTags على النموذج، استخدم IlluminateDatabaseEloquentModel;use SpatieTagsHasTags;class NewsItem Extends Model {استخدم علامات التصنيف؛ // ...}
// أنشئ نموذجًا يحتوي على بعض العلامات$newsItem = NewsItem::create([ 'name' => 'عنوان المقالة', 'tags' => ['العلامة الأولى', 'العلامة الثانية'], // ستكون العلامات تم إنشاؤها إذا لم تكن موجودة]);// إرفاق العلامات$newsItem->attachTag('العلامة الثالثة');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags(['العلامة الرابعة', 'العلامة الخامسة']);$newsItem->attachTags(['fourth_tag','fifth_tag'],'some_type');// فصل العلامات$newsItem->detachTag('العلامة الثالثة');$newsItem->detachTag('الثالثة' tag','some_type');$newsItem->detachTags(['العلامة الرابعة', 'العلامة الخامسة']);$newsItem->detachTags(['العلامة الرابعة', 'العلامة الخامسة'],'some_type'); // الحصول على جميع علامات النموذج$newsItem->tags;// مزامنة العلامات$newsItem->syncTags(['العلامة الأولى', 'العلامة الثانية']); // سيتم فصل جميع العلامات الأخرى في هذا النموذج // مزامنة العلامات ذات النوع$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['topic 1', 'topic 2'], 'topics'); // استرداد العلامات بالنوع$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('topics'); // استرداد النماذج التي تحتوي على أي من العلامات المحددةNewsItem::withAnyTags(['العلامة الأولى', 'العلامة الثانية'])->get();// استرداد النماذج التي تحتوي على جميع العلامات المحددةNewsItem::withAllTags([' العلامة الأولى', 'العلامة الثانية'])->get();// استرداد النماذج التي لا تحتوي على أي من العلامات المحددةNewsItem::withoutTags(['العلامة الأولى', 'الثانية tag'])->get();// ترجمة علامة$tag = Tag::findOrCreate('my tag');$tag->setTranslation('name', 'fr', 'mon tag');$ tag->setTranslation('name', 'nl', 'mijn tag');$tag->save();// الحصول على الترجمات$tag->translate('name'); // يُرجع اسمي$tag->translate('name', 'fr'); // إرجاع علامة mon (معلمة محلية اختيارية)// ترجمات ملائمة من خلال نماذج قابلة للتمييز$newsItem->tagsTranslated();// إرجاع العلامات ذات خصائص slug_translated وname_translated$newsItem->tagsTranslated('fr');// إرجاع العلامات مع تم تعيين خصائص slug_translated وname_translated للغة المحددة// باستخدام أنواع العلامات$tag = Tag::findOrCreate('tag 1', 'my type');// العلامات تحتوي على slug$tag = Tag::findOrCreate('علامة أخرى');$tag->slug; // يُرجع "علامة أخرى"// العلامات قابلة للفرز$tag = Tag::findOrCreate('my tag');$tag->order_column; // يُرجع 1$tag2 = Tag::findOrCreate('علامة أخرى');$tag2->order_column; // يُرجع 2// معالجة ترتيب العلامات$tag->swapOrder($anotherTag);// التحقق مما إذا كان النموذج يحتوي على علامة$newsItem->hasTag('العلامة الأولى');$newsItem->hasTag('first علامة"، "some_type")؛
Spatie هي وكالة تصميم مواقع الإنترنت مقرها في أنتويرب، بلجيكا. ستجد نظرة عامة على جميع مشاريعنا مفتوحة المصدر على موقعنا.
نحن نستثمر الكثير من الموارد في إنشاء أفضل الحزم مفتوحة المصدر في فئتها. يمكنك دعمنا عن طريق شراء أحد منتجاتنا المدفوعة.
نحن نقدر بشدة إرسالك لنا بطاقة بريدية من مسقط رأسك، مع ذكر الحزمة (الحزم) التي تستخدمها. ستجد عنواننا على صفحة الاتصال لدينا. ننشر جميع البطاقات البريدية المستلمة على جدار البطاقات البريدية الافتراضية لدينا.
تتطلب هذه الحزمة Laravel 8 أو أعلى، PHP 8 أو أعلى، وقاعدة بيانات تدعم حقول json
والوظائف المتوافقة مع MySQL.
يمكنك تثبيت الحزمة عبر الملحن:
يتطلب الملحن علامات spatie/laravel
ستقوم الحزمة بتسجيل نفسها تلقائيًا.
يمكنك نشر الترحيل باستخدام:
بائع PHP الحرفي: نشر --provider = "SpatieTagsTagsServiceProvider" --tag = "tags-migrations"
بعد نشر عملية الترحيل، يمكنك إنشاء جداول tags
taggables
عن طريق تشغيل عمليات الترحيل:
ترحيل الحرفيين PHP
يمكنك اختياريًا نشر ملف التكوين باستخدام:
بائع PHP الحرفي: نشر --provider = "SpatieTagsTagsServiceProvider" --tag = "tags-config"
هذه هي محتويات ملف التكوين المنشور:
return [/* * تقوم الوظيفة المحددة بإنشاء "ارتباط ثابت" صديق لعنوان URL من خاصية اسم العلامة قبل حفظه. * الإعدادات الافتراضية هي Str::slug (https://laravel.com/docs/5.8/helpers#method-str-slug) */'slugger' => null, ];
ستجد الوثائق على https://docs.spatie.be/laravel-tags/v4.
تجد نفسك عالقا في استخدام الحزمة؟ العثور على خطأ؟ هل لديك أسئلة أو اقتراحات عامة لتحسين حزمة laravel-tags
؟ لا تتردد في إنشاء مشكلة على GitHub، وسنحاول معالجتها في أقرب وقت ممكن.
إذا وجدت خطأً يتعلق بالأمان، فيرجى إرسال بريد إلكتروني إلى العنوان [email protected] بدلاً من استخدام أداة تعقب المشكلات.
انسخ phpunit.xml.dist
إلى phpunit.xml
واملأ بيانات اعتماد قاعدة البيانات الخاصة بك.
تشغيل composer test
.
الرجاء مراجعة سجل التغيير لمزيد من المعلومات عما تغير مؤخرًا.
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا وجدت خطأً يتعلق بالأمان، فيرجى إرسال بريد إلكتروني إلى العنوان [email protected] بدلاً من استخدام أداة تعقب المشكلات.
أنت حر في استخدام هذه الحزمة، ولكن إذا وصلت إلى بيئة الإنتاج الخاصة بك، فإننا نقدر بشدة إرسالك لنا بطاقة بريدية من مسقط رأسك، مع ذكر الحزمة (الحزم) التي تستخدمها.
عنواننا هو: سباتي، كرويكسترات 22، 2018 أنتويرب، بلجيكا.
ننشر جميع البطاقات البريدية المستلمة على موقع شركتنا.
فريك فان دير هيرتن
جميع المساهمين
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.