Dieses Paket bietet taggierbares Verhalten für Ihre Modelle. Nachdem das Paket installiert ist, müssen Sie nur noch das HasTags
Merkmal zu einem Eloquent-Modell hinzufügen, um es tagbar zu machen.
Aber wir haben uns nicht mit den regulären Tagging-Funktionen begnügt, die Sie in jedem Paket finden. Laravel Tags werden inklusive Batterien geliefert. Es bietet standardmäßig Unterstützung für die Übersetzung von Tags, mehrere Tag-Typen und Sortierfunktionen.
Die Dokumentation finden Sie unter https://spatie.be/docs/laravel-tags.
Hier sind einige Codebeispiele:
// HasTags-Merkmal auf ein Modell anwendenuse IlluminateDatabaseEloquentModel;use SpatieTagsHasTags;class NewsItem erweitert Model {hasTags verwenden; // ...}
// ein Modell mit einigen Tags erstellen$newsItem = NewsItem::create([ 'name' => 'The Article Title', 'tags' => ['first tag', 'second tag'], //tags will be erstellt, wenn sie nicht existieren]);// Anhängen von Tags$newsItem->attachTag('third tag');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags([' vierte tag', 'fifth tag']);$newsItem->attachTags(['fourth_tag','fifth_tag'],'some_type');// Tags trennen$newsItem->detachTag('third tag');$newsItem- >detachTag('drittes Tag','some_type');$newsItem->detachTags(['viertes Tag', 'fünftes tag']);$newsItem->detachTags(['viertes Tag', 'fünftes Tag'],'some_type');// alle Tags eines Modells abrufen$newsItem->tags;// Tags synchronisieren$newsItem-> syncTags(['erstes Tag', 'zweites Tag']); // alle anderen Tags in diesem Modell werden getrennt // Tags mit einem Typ synchronisieren$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['topic 1', 'topic 2'], 'topics'); // Tags mit einem Typ abrufen$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('topics'); // Modelle abrufen, die über eines der angegebenen Tags verfügenNewsItem::withAnyTags(['first tag', 'second tag'])->get();// Modelle abrufen, die über alle angegebenen Tags verfügenNewsItem::withAllTags([' erstes Tag', 'zweites Tag'])->get();// Modelle abrufen, die keines der angegebenen Tags habenNewsItem::withoutTags(['erstes Tag', 'zweite tag'])->get();// ein Tag übersetzen$tag = Tag::findOrCreate('my tag');$tag->setTranslation('name', 'fr', 'mon tag');$ tag->setTranslation('name', 'nl', 'mijn tag');$tag->save();// Übersetzungen abrufen$tag->translate('name'); //gibt meinen Namen zurück$tag->translate('name', 'fr'); //gibt mon-Tag zurück (optionaler Locale-Parameter)// bequeme Übersetzungen durch tagbare Modelle$newsItem->tagsTranslated();// gibt Tags mit den Eigenschaften slug_translated und name_translated zurück$newsItem->tagsTranslated('fr');// gibt Tags mit zurück Die Eigenschaften „slug_translated“ und „name_translated“ werden für das angegebene Gebietsschema// mithilfe von Tag-Typen festgelegt. $tag = Tag::findOrCreate('tag 1', 'my type');// Tags have slugs$tag = Tag::findOrCreate('yet another tag');$tag->slug; //gibt „yet-another-tag“ zurück// Tags sind sortierbar$tag = Tag::findOrCreate('my tag');$tag->order_column; //returns 1$tag2 = Tag::findOrCreate('another tag');$tag2->order_column; //gibt 2 zurück// manipuliert die Reihenfolge der Tags$tag->swapOrder($anotherTag);// prüft, ob ein Modell ein Tag hat$newsItem->hasTag('first tag');$newsItem->hasTag('first tag', 'some_type');
Spatie ist eine Webdesign-Agentur mit Sitz in Antwerpen, Belgien. Eine Übersicht aller unserer Open-Source-Projekte finden Sie auf unserer Website.
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Dieses Paket erfordert Laravel 8 oder höher, PHP 8 oder höher und eine Datenbank, die json
Felder und MySQL-kompatible Funktionen unterstützt.
Sie können das Paket über Composer installieren:
Komponist benötigt Spatie/Laravel-Tags
Das Paket registriert sich automatisch.
Sie können die Migration veröffentlichen mit:
PHP-Artist-Anbieter:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
Nachdem die Migration veröffentlicht wurde, können Sie die tags
und taggables
-Tabellen erstellen, indem Sie die Migrationen ausführen:
PHP-Artist migrieren
Sie können die Konfigurationsdatei optional veröffentlichen mit:
PHP-Artist-Anbieter:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-config"
Dies ist der Inhalt der veröffentlichten Konfigurationsdatei:
return [/* * Die angegebene Funktion generiert vor dem Speichern einen URL-freundlichen „Slug“ aus der Tag-Namenseigenschaft. * Standardmäßig ist Str::slug (https://laravel.com/docs/5.8/helpers#method-str-slug) */'slugger' => null, ];
Die Dokumentation finden Sie unter https://docs.spatie.be/laravel-tags/v4.
Stecken Sie bei der Verwendung des Pakets fest? Einen Fehler gefunden? Haben Sie allgemeine Fragen oder Vorschläge zur Verbesserung des laravel-tags
Pakets? Sie können gerne ein Problem auf GitHub erstellen. Wir werden versuchen, es so schnell wie möglich zu beheben.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Kopieren Sie phpunit.xml.dist
nach phpunit.xml
und geben Sie Ihre Datenbankanmeldeinformationen ein.
Führen Sie composer test
aus.
Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Es steht Ihnen frei, dieses Paket zu verwenden, aber wenn es in Ihre Produktionsumgebung gelangt, würden wir uns sehr freuen, wenn Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden.
Unsere Adresse lautet: Spatie, Kruikstraat 22, 2018 Antwerpen, Belgien.
Wir veröffentlichen alle erhaltenen Postkarten auf unserer Firmenwebsite.
Freek Van der Herten
Alle Mitwirkenden
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.