แพ็คเกจนี้นำเสนอพฤติกรรมที่สามารถแท็กได้สำหรับโมเดลของคุณ หลังจากติดตั้งแพ็คเกจแล้ว สิ่งเดียวที่คุณต้องทำคือเพิ่มคุณลักษณะ HasTags
ให้กับโมเดล Eloquent เพื่อให้สามารถแท็กได้
แต่เราไม่ได้หยุดอยู่เพียงความสามารถในการติดแท็กตามปกติที่คุณพบในทุกแพ็คเกจ แท็ก Laravel มาพร้อมกับแบตเตอรี่รวมอยู่ด้วย รองรับการแปลแท็ก แท็กหลายประเภท และความสามารถในการจัดเรียงตั้งแต่แกะกล่อง
คุณจะพบเอกสารประกอบได้ที่https://spatie.be/docs/laravel-tags
นี่คือตัวอย่างโค้ดบางส่วน:
// ใช้คุณลักษณะ HasTags กับโมเดลใช้ IlluminateDatabaseEloquentModel; ใช้ SpatieTagsHasTags; คลาส NewsItem ขยายโมเดล {ใช้ HasTags; -
// สร้างโมเดลด้วยแท็ก$newsItem = NewsItem::create([ 'name' => 'The Article Title', 'tags' => ['first tag', 'second tag'], //tags will be สร้างขึ้นหากไม่มีอยู่]);// การแนบแท็ก$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'); // รับแท็กทั้งหมดของ model$newsItem->tags;// การซิงค์แท็ก$newsItem->syncTags(['แท็กแรก', 'วินาที แท็ก']); // แท็กอื่นๆ ทั้งหมดในโมเดลนี้จะถูกแยกออก// กำลังซิงค์แท็กด้วย type$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['หัวข้อ 1', 'หัวข้อ 2'], 'หัวข้อ'); // การเรียกแท็กด้วย type$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('หัวข้อ'); // การดึงข้อมูลโมเดลที่มี tagNewsItem::withAnyTags(['first tag', 'second tag'])->get();// ดึงข้อมูลโมเดลที่มี tagNewsItem::withAllTags([') ที่กำหนดทั้งหมด แท็กแรก', 'แท็กที่สอง'])->get();// ดึงโมเดลที่ไม่มีแท็กใด ๆ ที่กำหนดNewsItem::withoutTags(['แท็กแรก', 'แท็กที่สอง'])->get();// กำลังแปล tag$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 ที่ตั้งค่าสำหรับสถานที่ที่ระบุ// โดยใช้แท็ก types$tag = Tag::findOrCreate('tag 1', 'ประเภทของฉัน');// แท็กมี slugs$tag = Tag::findOrCreate('yet another tag');$tag->slug; //ส่งคืน "yet-another-tag"// แท็กสามารถจัดเรียงได้$tag = Tag::findOrCreate('my tag');$tag->order_column; //ส่งคืน 1$tag2 = Tag::findOrCreate('another tag');$tag2->order_column; // ส่งคืน 2 // จัดการลำดับของแท็ก$tag->swapOrder($anotherTag);// ตรวจสอบว่าโมเดลมี tag$newsItem->hasTag('first tag');$newsItem->hasTag('first แท็ก', 'some_type');
Spatie เป็นเอเจนซี่ออกแบบเว็บไซต์ที่ตั้งอยู่ในเมืองแอนต์เวิร์ป ประเทศเบลเยียม คุณจะพบภาพรวมของโครงการโอเพ่นซอร์สทั้งหมดของเราบนเว็บไซต์ของเรา
เราลงทุนทรัพยากรจำนวนมากเพื่อสร้างแพ็คเกจโอเพ่นซอร์สที่ดีที่สุดในระดับเดียวกัน คุณสามารถสนับสนุนเราได้โดยการซื้อหนึ่งในผลิตภัณฑ์ที่ต้องชำระเงินของเรา
เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณถึงเรา โดยระบุว่าคุณใช้แพ็คเกจใดของเรา คุณจะพบที่อยู่ของเราในหน้าติดต่อของเรา เราเผยแพร่โปสการ์ดที่ได้รับทั้งหมดบนวอลล์โปสการ์ดเสมือนของเรา
แพ็คเกจนี้ต้องใช้ Laravel 8 ขึ้นไป, PHP 8 ขึ้นไป และฐานข้อมูลที่รองรับฟิลด์ json
และฟังก์ชันที่เข้ากันได้กับ MySQL
คุณสามารถติดตั้งแพ็คเกจผ่านทางผู้แต่ง:
ผู้แต่งต้องการ spatie/laravel-tags
แพ็คเกจจะลงทะเบียนเองโดยอัตโนมัติ
คุณสามารถเผยแพร่การย้ายข้อมูลด้วย:
ผู้ขายช่างฝีมือ php: เผยแพร่ --provider = "SpatieTagsTagsServiceProvider" --tag = "tags-migrations"
หลังจากเผยแพร่การย้ายข้อมูลแล้ว คุณสามารถสร้าง tags
และตาราง taggables
โดยการเรียกใช้การย้ายข้อมูล:
php artisan โยกย้าย
คุณสามารถเลือกเผยแพร่ไฟล์กำหนดค่าด้วย:
ผู้ขายช่างฝีมือ php: เผยแพร่ --provider = "SpatieTagsTagsServiceProvider" --tag = "tags-config"
นี่คือเนื้อหาของไฟล์กำหนดค่าที่เผยแพร่:
return [/* * ฟังก์ชั่นที่กำหนดจะสร้าง "slug" ที่เป็นมิตรต่อ 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
โปรดดู CHANGELOG สำหรับข้อมูลเพิ่มเติมว่ามีอะไรเปลี่ยนแปลงเมื่อเร็วๆ นี้
โปรดดูการมีส่วนร่วมเพื่อดูรายละเอียด
หากคุณพบข้อบกพร่องเกี่ยวกับการรักษาความปลอดภัย โปรดส่งอีเมลไปที่ [email protected] แทนการใช้ตัวติดตามปัญหา
คุณใช้แพ็คเกจนี้ได้ฟรี แต่ถ้าเหมาะกับสภาพแวดล้อมการใช้งานจริงของคุณ เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณมาให้เรา โดยระบุว่าคุณกำลังใช้แพ็คเกจใดของเรา
ที่อยู่ของเราคือ: Spatie, Kruikstraat 22, 2018 แอนต์เวิร์ป, เบลเยียม
เราเผยแพร่ไปรษณียบัตรที่ได้รับทั้งหมดบนเว็บไซต์ของบริษัทของเรา
ฟรีค ฟาน เดอร์ แฮร์เทน
ผู้ร่วมให้ข้อมูลทั้งหมด
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม