이 패키지는 모델에 태그 가능한 동작을 제공합니다. 패키지가 설치된 후 해야 할 유일한 일은 HasTags
특성을 Eloquent 모델에 추가하여 태그를 지정할 수 있도록 만드는 것입니다.
하지만 우리는 모든 패키지에서 볼 수 있는 일반적인 태깅 기능에서 끝나지 않았습니다. Laravel 태그에는 배터리가 포함되어 있습니다. 기본적으로 태그 번역, 여러 태그 유형 및 정렬 기능을 지원합니다.
https://spatie.be/docs/laravel-tags에서 문서를 찾을 수 있습니다.
다음은 몇 가지 코드 예입니다.
// HasTags 특성을 모델에 적용use IlluminateDatabaseEloquentModel;use SpatieTagsHasTags;class NewsItem 확장 모델 {HasTags 사용; // ...}
// 태그가 포함된 모델 생성$newsItem = NewsItem::create([ 'name' => '기사 제목', 'tags' => ['첫 번째 태그', '두 번째 태그'], //태그는 다음과 같습니다. 존재하지 않는 경우 생성됨]);// 태그 첨부$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'); // 모델의 모든 태그 가져오기$newsItem->tags;// 태그 동기화$newsItem->syncTags(['first tag', 'second 태그']); // 이 모델의 다른 모든 태그는 분리됩니다. // type$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['주제 1', '주제 2'], '주제'); // 유형이 $newsItem->tagsWithType('categories')인 태그 검색; $newsItem->tagsWithType('주제'); // 주어진 태그 중 하나가 있는 모델 검색NewsItem::withAnyTags(['first tag', 'second tag'])->get();// 주어진 tagNewsItem::withAllTags([' 첫 번째 태그', '두 번째 태그'])->get();// 주어진 태그가 하나도 없는 모델 검색NewsItem::withoutTags(['첫 번째 태그', '두 번째 태그 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_translated 및 name_translated 속성이 있는 태그 반환$newsItem->tagsTranslated('fr');// 다음이 포함된 태그 반환 지정된 로케일에 대해 설정된 slug_translated 및 name_translated 속성// 태그 유형 사용$tag = Tag::findOrCreate('tag 1', 'my type');// 태그에 슬러그가 있습니다.$tag = Tag::findOrCreate('아직 다른 태그');$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는 벨기에 앤트워프에 본사를 둔 웹 디자인 에이전시입니다. 당사 웹사이트에서 당사의 모든 오픈 소스 프로젝트에 대한 개요를 확인할 수 있습니다.
우리는 동급 최고의 오픈 소스 패키지를 만드는 데 많은 리소스를 투자합니다. 유료 제품 중 하나를 구매하여 우리를 지원할 수 있습니다.
귀하가 사용하고 있는 당사 패키지를 언급하면서 귀하의 고향에서 엽서를 보내주셔서 진심으로 감사드립니다. 연락처 페이지에서 주소를 확인하실 수 있습니다. 우리는 수신된 모든 엽서를 가상 엽서 월에 게시합니다.
이 패키지에는 Laravel 8 이상, PHP 8 이상, json
필드 및 MySQL 호환 기능을 지원하는 데이터베이스가 필요합니다.
작곡가를 통해 패키지를 설치할 수 있습니다.
작곡가는 spatie/laravel-tag가 필요합니다.
패키지가 자동으로 등록됩니다.
다음을 사용하여 마이그레이션을 게시할 수 있습니다.
php artisan Vendor:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
마이그레이션이 게시된 후 마이그레이션을 실행하여 tags
및 taggables
테이블을 생성할 수 있습니다.
PHP 장인 마이그레이션
선택적으로 다음을 사용하여 구성 파일을 게시할 수 있습니다.
php artisan Vendor: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를 참조하세요.
자세한 내용은 CONTRIBUTING을 참조하세요.
보안 관련 버그를 발견한 경우 이슈 트래커를 사용하는 대신 [email protected]로 메일을 보내주세요.
이 패키지를 무료로 사용할 수 있지만, 귀하의 프로덕션 환경에 적용된다면 귀하가 사용하고 있는 패키지를 언급하면서 고향에서 엽서를 보내주시면 감사하겠습니다.
주소는 Spatie, Kruikstraat 22, 2018 Antwerp, Belgium입니다.
우리는 받은 모든 엽서를 회사 웹사이트에 게시합니다.
프리크 반 데르 헤르텐
모든 기여자
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.