このパッケージは、モデルにタグ付け可能な動作を提供します。パッケージのインストール後に行う必要があるのは、 HasTags
トレイトを Eloquent モデルに追加してタグ付け可能にすることだけです。
しかし、私たちはすべてのパッケージにある通常のタグ付け機能にとどまりませんでした。 Laravel タグには電池が付属しています。すぐに使用できるタグ、複数のタグ タイプ、並べ替え機能の翻訳がサポートされています。
ドキュメントは https://spatie.be/docs/laravel-tags にあります。
以下にいくつかのコード例を示します。
// HasTags トレイトをモデルに適用use IlluminateDatabaseEloquentModel;use SpatieTagsHasTags;class NewsItem extends Model {HasTags を使用する; // ...}
// いくつかのタグを含むモデルを作成します$newsItem = NewsItem::create([ 'name' => '記事のタイトル', 'tags' => ['first tag', 'first tag'], //タグは存在しない場合は作成されます]);// タグを添付$newsItem->attachTag('third tag');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags(['4 番目のタグ', '5 番目のタグ']);$newsItem->attachTags(['4 番目のタグ', '5 番目のタグ'],'some_type');//タグを切り離す$newsItem->detachTag('3番目のタグ');$newsItem->detachTag('3番目のタグ') tag','some_type');$newsItem->detachTags(['4 番目のタグ', '5 番目のタグ']);$newsItem->detachTags(['4 番目のタグ', '5 番目のタグ'], 'some_type'); // モデルのすべてのタグを取得$newsItem->tags;// タグを同期$newsItem->syncTags(['first tag', 'first tag']); // このモデルの他のすべてのタグは切り離されます// type でタグを同期します$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['トピック 1', 'トピック 2'], 'トピック'); // type でタグを取得 $newsItem->tagsWithType('categories'); $newsItem->tagsWithType('トピック'); // 指定されたタグのいずれかを持つモデルを取得NewsItem::withAnyTags(['first tag', '2nd tag'])->get();// 指定されたタグをすべて持つモデルを取得NewsItem::withAllTags([' first タグ', '2 番目のタグ'])->get();// 指定されたタグのいずれも持たないモデルを取得NewsItem::withoutTags(['1 番目のタグ', '2 番目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_transulated および name_transulated プロパティを持つタグを返します$newsItem->tagsTranslated('fr');// のタグを返します// タグ タイプを使用して、指定されたロケールに設定される slug_transulated プロパティと name_transulated プロパティ $tag = Tag::findOrCreate('tag 1', 'my type');// タグにはスラッグがあります$tag = Tag::findOrCreate('yet another tag');$tag->slug; //「まだ別のタグ」を返します// タグは並べ替え可能です$tag = Tag::findOrCreate('my tag');$tag->order_column; // 1$tag2 = Tag::findOrCreate('別のタグ');$tag2->order_column; を返します。 // 2 を返します// タグの順序を操作$tag->swapOrder($anotherTag);// モデルにタグがあるかどうかを確認$newsItem->hasTag('first tag');$newsItem->hasTag('firstタグ'、'some_type');
Spatie は、ベルギーのアントワープに拠点を置くウェブデザイン会社です。当社のすべてのオープンソース プロジェクトの概要は、当社の Web サイトでご覧いただけます。
私たちはクラス最高のオープンソース パッケージの作成に多くのリソースを投資しています。有料製品のいずれかを購入することで、私たちをサポートできます。
当社のどのパッケージを使用しているかについて、故郷から葉書を送っていただき、誠にありがとうございます。当社の住所は、お問い合わせページに記載されています。受け取ったすべてのポストカードをバーチャル ポストカード ウォールに公開します。
このパッケージには、Laravel 8 以降、PHP 8 以降、およびjson
フィールドと MySQL 互換関数をサポートするデータベースが必要です。
パッケージは、composer 経由でインストールできます。
コンポーザーには spatie/laravel-tag が必要です
パッケージは自動的に登録されます。
次のコマンドを使用して移行を公開できます。
php 職人ベンダー:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
移行が公開された後、移行を実行してtags
とtaggables
テーブルを作成できます。
php 職人の移行
必要に応じて、次のコマンドを使用して構成ファイルを公開できます。
php 職人ベンダー:publish --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
を実行します。
最近の変更点の詳細については、CHANGELOG を参照してください。
詳細については、「貢献」を参照してください。
セキュリティに関するバグを見つけた場合は、問題トラッカーを使用する代わりに [email protected] にメールを送信してください。
このパッケージを自由に使用できますが、実稼働環境に届いた場合は、どのパッケージを使用しているかを記載した葉書を故郷から送っていただければ幸いです。
私たちの住所は、Spatie, Kruikstraat 22, 2018 Antwerp, Belgiumです。
いただいたはがきはすべて当社ホームページに掲載しております。
フリーク・ファン・デル・ヘルテン
すべての貢献者
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。