Paket ini menawarkan perilaku yang dapat diberi tag untuk model Anda. Setelah paket diinstal, satu-satunya hal yang harus Anda lakukan adalah menambahkan sifat HasTags
ke model Eloquent agar dapat diberi tag.
Namun kami tidak berhenti pada kemampuan penandaan biasa yang Anda temukan di setiap paket. Laravel Tag dilengkapi dengan baterai yang disertakan. Di luar kotak, ia memiliki dukungan untuk menerjemahkan tag, berbagai jenis tag, dan kemampuan penyortiran.
Anda akan menemukan dokumentasinya di https://spatie.be/docs/laravel-tags.
Berikut beberapa contoh kode:
// menerapkan sifat HasTags ke modelmenggunakan IlluminateDatabaseEloquentModel;menggunakan SpatieTagsHasTags;kelas NewsItem memperluas Model {gunakan HasTag; // ...}
// membuat model dengan beberapa tag$newsItem = NewsItem::create([ 'name' => 'Judul Artikel', 'tags' => ['tag pertama', 'tag kedua'], //tag akan menjadi dibuat jika tidak ada]);// melampirkan tag$newsItem->attachTag('third tag');$newsItem->attachTag('third tag');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags(['tag keempat', 'tag kelima']);$newsItem->attachTags(['tag_keempat','tag_kelima'],'some_type');// melepaskan tag$newsItem->detachTag('third tag');$newsItem->detachTag('third tag');$newsItem->detachTag('third tag','some_type');$newsItem->detachTags(['tag keempat', 'tag kelima']);$newsItem->detachTags(['tag keempat', 'tag kelima'],'some_type'); // ambil semua tag dari model$newsItem->tags;// menyinkronkan tag$newsItem->syncTags(['first tag', 'second tag']); // semua tag lain pada model ini akan dilepas// menyinkronkan tag dengan type$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['topik 1', 'topik 2'], 'topik'); // mengambil tag dengan type$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('topik'); // mengambil model yang memiliki salah satu tag yang diberikanNewsItem::withAnyTags(['first tag', 'second tag'])->get();// mengambil model yang memiliki semua tag yang diberikanNewsItem::withAllTags([' tag pertama', 'tag kedua'])->get();// mengambil model yang tidak memiliki salah satu tag yang diberikanNewsItem::withoutTags(['first tag', 'second tag'])->get();// menerjemahkan tag$tag = Tag::findOrCreate('my tag');$tag->setTranslation('name', 'fr', 'mon tag');$ tag->setTranslation('name', 'nl', 'mijn tag');$tag->save();// mendapatkan terjemahan$tag->translate('name'); //mengembalikan nama saya$tag->translate('name', 'fr'); //mengembalikan tag mon (param lokal opsional)// terjemahan mudah melalui model yang dapat diberi tag$newsItem->tagsTranslated();// mengembalikan tag dengan properti slug_translated dan name_translated$newsItem->tagsTranslated('fr');// mengembalikan tag dengan properti slug_translated dan name_translated disetel untuk lokal tertentu// menggunakan tipe tag$tag = Tag::findOrCreate('tag 1', 'my type');// tag memiliki slugs$tag = Tag::findOrCreate('yet another tag');$tag->slug; //mengembalikan "tag-yang lain"// tag dapat diurutkan$tag = Tag::findOrCreate('tag saya');$tag->order_column; //mengembalikan 1$tag2 = Tag::findOrCreate('tag lain');$tag2->order_column; //returns 2// memanipulasi urutan tag$tag->swapOrder($anotherTag);// memeriksa apakah model memiliki tag$newsItem->hasTag('first tag');$newsItem->hasTag('first tag', 'some_type');
Spatie adalah agen desain web yang berbasis di Antwerpen, Belgia. Anda akan menemukan ikhtisar semua proyek sumber terbuka kami di situs web kami.
Kami menginvestasikan banyak sumber daya untuk menciptakan paket sumber terbuka terbaik di kelasnya. Anda dapat mendukung kami dengan membeli salah satu produk berbayar kami.
Kami sangat menghargai Anda mengirimi kami kartu pos dari kota asal Anda, yang menyebutkan paket kami mana yang Anda gunakan. Anda akan menemukan alamat kami di halaman kontak kami. Kami mempublikasikan semua kartu pos yang diterima di dinding kartu pos virtual kami.
Paket ini memerlukan Laravel 8 atau lebih tinggi, PHP 8 atau lebih tinggi, dan database yang mendukung bidang json
dan fungsi yang kompatibel dengan MySQL.
Anda dapat menginstal paket melalui composer:
komposer memerlukan spatie/laravel-tags
Paket akan otomatis mendaftar sendiri.
Anda dapat memublikasikan migrasi dengan:
vendor tukang php:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
Setelah migrasi dipublikasikan, Anda dapat membuat tabel tags
dan taggables
dengan menjalankan migrasi:
migrasi tukang php
Anda secara opsional dapat mempublikasikan file konfigurasi dengan:
vendor tukang php:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-config"
Ini adalah isi file konfigurasi yang dipublikasikan:
return [/* * Fungsi yang diberikan menghasilkan "siput" ramah URL dari properti nama tag sebelum menyimpannya. * Defaultnya adalah Str::slug (https://laravel.com/docs/5.8/helpers#method-str-slug) */'slugger' => null, ];
Anda akan menemukan dokumentasinya di https://docs.spatie.be/laravel-tags/v4.
Merasa terjebak saat menggunakan paket ini? Menemukan bug? Apakah Anda memiliki pertanyaan umum atau saran untuk meningkatkan paket laravel-tags
? Jangan ragu untuk membuat masalah di GitHub, kami akan mencoba mengatasinya sesegera mungkin.
Jika Anda menemukan bug terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Salin phpunit.xml.dist
ke phpunit.xml
dan isi kredensial database Anda.
Jalankan composer test
.
Silakan lihat CHANGELOG untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
Silakan lihat KONTRIBUSI untuk rinciannya.
Jika Anda menemukan bug terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Anda bebas menggunakan paket ini, namun jika paket ini masuk ke lingkungan produksi Anda, kami sangat menghargai Anda mengirimi kami kartu pos dari kota asal Anda, yang menyebutkan paket kami mana yang Anda gunakan.
Alamat kami adalah: Spatie, Kruikstraat 22, 2018 Antwerp, Belgia.
Kami mempublikasikan semua kartu pos yang diterima di situs web perusahaan kami.
Freek Van der Herten
Semua Kontributor
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.