Ce package offre un comportement étiquetable pour vos modèles. Une fois le package installé, la seule chose que vous avez à faire est d'ajouter le trait HasTags
à un modèle Eloquent pour le rendre étiquetable.
Mais nous ne nous sommes pas arrêtés aux capacités de marquage habituelles que vous trouverez dans chaque package. Laravel Tags est livré avec des piles incluses. Prêt à l'emploi, il prend en charge la traduction des balises, plusieurs types de balises et des capacités de tri.
Vous trouverez la documentation sur https://spatie.be/docs/laravel-tags.
Voici quelques exemples de code :
// applique le trait HasTags à un modèle (utilisez IlluminateDatabaseEloquentModel ; utilisez SpatieTagsHasTags ; la classe NewsItem étend le modèle {utilisez HasTags ; //...}
// crée un modèle avec quelques balises$newsItem = NewsItem::create([ 'name' => 'The Article Title', 'tags' => ['first tag', 'second tag'], // les balises seront créés s'ils n'existent pas]);// attacher des balises$newsItem->attachTag('third tag');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags(['quatrième tag', 'cinquième tag']);$newsItem->attachTags(['fourth_tag','fifth_tag'],'some_type');// détacher les balises$newsItem->detachTag('troisième balise');$newsItem->detachTag('troisième tag','some_type');$newsItem->detachTags(['quatrième balise', 'cinquième balise']);$newsItem->detachTags(['quatrième balise', 'cinquième balise'],'some_type'); // récupère toutes les balises d'un modèle$newsItem->tags;// synchronisation des balises$newsItem->syncTags(['first tag', 'second tag']); // toutes les autres balises de ce modèle seront détachées // synchronisation des balises avec un type$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['sujet 1', 'sujet 2'], 'sujets'); // récupération des balises avec un type$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('sujets'); // récupération des modèles qui ont l'un des tags donnésNewsItem::withAnyTags(['first tag', 'second tag'])->get();// récupération des modèles qui ont tous les tags donnésNewsItem::withAllTags([' first tag', 'second tag'])->get();// récupérer les modèles qui n'ont aucun des tags donnésNewsItem::withoutTags(['first tag', 'second tag'])->get();// traduire un tag$tag = Tag::findOrCreate('my tag');$tag->setTranslation('name', 'fr', 'mon tag');$ tag->setTranslation('name', 'nl', 'mijn tag');$tag->save();// obtenir des traductions$tag->translate('name'); //renvoie mon nom$tag->translate('name', 'fr'); //renvoie la balise mon (paramètre local facultatif)// traductions pratiques via des modèles taggables$newsItem->tagsTranslated();// renvoie les balises avec les propriétés slug_translated et name_translated$newsItem->tagsTranslated('fr');// renvoie les balises avec Propriétés slug_translated et name_translated définies pour les paramètres régionaux spécifiés// à l'aide des types de balises$tag = Tag::findOrCreate('tag 1', 'mon type');// les balises ont des slugs$tag = Tag::findOrCreate('encore une autre balise');$tag->slug; //renvoie "encore une autre-tag"// les balises sont triables$tag = Tag::findOrCreate('my tag');$tag->order_column; //renvoie 1$tag2 = Tag::findOrCreate('another tag');$tag2->order_column; //renvoie 2// manipuler l'ordre des balises$tag->swapOrder($anotherTag);// vérifier si un modèle a une balise$newsItem->hasTag('first tag');$newsItem->hasTag('first tag', 'some_type');
Spatie est une agence de webdesign basée à Anvers, en Belgique. Vous trouverez un aperçu de tous nos projets open source sur notre site Internet.
Nous investissons beaucoup de ressources dans la création des meilleurs packages open source de leur catégorie. Vous pouvez nous soutenir en achetant l'un de nos produits payants.
Nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant le(s) forfait(s) que vous utilisez. Vous trouverez notre adresse sur notre page contact. Nous publions toutes les cartes postales reçues sur notre mur virtuel de cartes postales.
Ce package nécessite Laravel 8 ou supérieur, PHP 8 ou supérieur et une base de données prenant en charge les champs json
et les fonctions compatibles MySQL.
Vous pouvez installer le package via composer :
le compositeur nécessite des balises spatie/laravel
Le package s’enregistrera automatiquement.
Vous pouvez publier la migration avec :
Vendeur artisanal php :publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
Une fois la migration publiée, vous pouvez créer les tags
et les tables taggables
en exécutant les migrations :
php artisan migrer
Vous pouvez éventuellement publier le fichier de configuration avec :
Vendeur artisanal php :publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-config"
Voici le contenu du fichier de configuration publié :
return [/* * La fonction donnée génère un "slug" convivial pour les URL à partir de la propriété du nom de la balise avant de l'enregistrer. * La valeur par défaut est Str::slug (https://laravel.com/docs/5.8/helpers#method-str-slug) */'slugger' => null, ];
Vous trouverez la documentation sur https://docs.spatie.be/laravel-tags/v4.
Vous vous retrouvez bloqué en utilisant le package ? Vous avez trouvé un bug ? Avez-vous des questions générales ou des suggestions pour améliorer le package laravel-tags
? N'hésitez pas à créer un problème sur GitHub, nous essaierons de le résoudre dans les plus brefs délais.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Copiez phpunit.xml.dist
dans phpunit.xml
et remplissez les informations d'identification de votre base de données.
Exécutez composer test
.
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Vous êtes libre d'utiliser ce package, mais s'il parvient à votre environnement de production, nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant lequel de nos packages vous utilisez.
Notre adresse est : Spatie, Kruikstraat 22, 2018 Anvers, Belgique.
Nous publions toutes les cartes postales reçues sur le site Internet de notre entreprise.
Freek Van der Herten
Tous les contributeurs
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.