Este pacote oferece comportamento marcável para seus modelos. Após a instalação do pacote, a única coisa que você precisa fazer é adicionar o traço HasTags
a um modelo Eloquent para torná-lo marcável.
Mas não paramos com os recursos regulares de marcação que você encontra em todos os pacotes. Laravel Tags vem com baterias incluídas. Pronto para uso, ele tem suporte para tradução de tags, vários tipos de tags e recursos de classificação.
Você encontrará a documentação em https://spatie.be/docs/laravel-tags.
Aqui estão alguns exemplos de código:
// aplica a característica HasTags a um modelouse IlluminateDatabaseEloquentModel;use SpatieTagsHasTags;class NewsItem estende Model {usar HasTags; // ...}
// cria um modelo com algumas tags$newsItem = NewsItem::create([ 'name' => 'The Article Title', 'tags' => ['first tag', 'second tag'], //tags serão criadas se não existirem]);// anexando tags$newsItem->attachTag('third tag');$newsItem->attachTag('third tag','some_type');$newsItem->attachTags(['quarta tag', 'quinta tag']);$newsItem->attachTags(['fourth_tag','fifth_tag'],'some_type');// desanexando tags$newsItem->detachTag('terceira tag');$newsItem->detachTag('terceira tag','some_type');$newsItem->detachTags(['quarta tag', 'quinta tag']);$newsItem->detachTags(['quarta tag', 'quinta tag'],'some_type'); // obtém todas as tags de um modelo$newsItem->tags;// sincroniza tags$newsItem->syncTags(['first tag', 'second tag']); // todas as outras tags neste modelo serão desanexadas// sincronizando tags com um type$newsItem->syncTagsWithType(['category 1', 'category 2'], 'categories'); $newsItem->syncTagsWithType(['tópico 1', 'tópico 2'], 'tópicos'); // recuperando tags com type$newsItem->tagsWithType('categories'); $newsItem->tagsWithType('tópicos'); // recuperando modelos que possuem qualquer uma das tags fornecidasNewsItem::withAnyTags(['first tag', 'second tag'])->get(); // recupera modelos que possuem todas as tags fornecidasNewsItem::withAllTags([' first tag', 'second tag'])->get(); // recupera modelos que não possuem nenhuma das tags fornecidasNewsItem::withoutTags(['first tag', 'second tag'])->get();// traduzindo uma tag$tag = Tag::findOrCreate('my tag');$tag->setTranslation('name', 'fr', 'mon tag');$ tag->setTranslation('name', 'nl', 'mijn tag');$tag->save();// obtendo traduções$tag->translate('name'); //retorna meu nome$tag->translate('name', 'fr'); //retorna a tag mon (parâmetro local opcional)// traduções convenientes através de modelos taggáveis$newsItem->tagsTranslated();// retorna tags com propriedades slug_translated e name_translated$newsItem->tagsTranslated('fr');// retorna tags com Propriedades slug_translated e name_translated definidas para localidade especificada// usando tipos de tags$tag = Tag::findOrCreate('tag 1', 'meu tipo');// tags possuem slugs$tag = Tag::findOrCreate('mais uma tag');$tag->slug; //retorna "yet-another-tag"// tags são classificáveis$tag = Tag::findOrCreate('my tag');$tag->order_column; //retorna 1$tag2 = Tag::findOrCreate('outra tag');$tag2->order_column; //retorna 2// manipulando a ordem das tags$tag->swapOrder($anotherTag);// verificando se um modelo possui uma tag$newsItem->hasTag('first tag');$newsItem->hasTag('first etiqueta', 'algum_tipo');
Spatie é uma agência de webdesign com sede em Antuérpia, Bélgica. Você encontrará uma visão geral de todos os nossos projetos de código aberto em nosso site.
Investimos muitos recursos na criação dos melhores pacotes de código aberto. Você pode nos apoiar comprando um de nossos produtos pagos.
Agradecemos muito que você nos envie um cartão postal de sua cidade natal, mencionando qual(is) de nossos pacotes você está usando. Você encontrará nosso endereço em nossa página de contato. Publicamos todos os cartões postais recebidos em nosso mural virtual de cartões postais.
Este pacote requer Laravel 8 ou superior, PHP 8 ou superior e um banco de dados que suporte campos json
e funções compatíveis com MySQL.
Você pode instalar o pacote via compositor:
compositor requer spatie/laravel-tags
O pacote será registrado automaticamente.
Você pode publicar a migração com:
fornecedor de artesão php:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-migrations"
Depois que a migração for publicada, você poderá criar as tabelas tags
e taggables
executando as migrações:
php artesão migrar
Opcionalmente, você pode publicar o arquivo de configuração com:
fornecedor de artesão php:publish --provider="SpatieTagsTagsServiceProvider" --tag="tags-config"
Este é o conteúdo do arquivo de configuração publicado:
return [/* * A função fornecida gera um "slug" amigável de URL a partir da propriedade do nome da tag antes de salvá-la. * O padrão é Str::slug (https://laravel.com/docs/5.8/helpers#method-str-slug) */'slugger' => null, ];
Você encontrará a documentação em https://docs.spatie.be/laravel-tags/v4.
Você está preso ao usar o pacote? Encontrou um bug? Você tem dúvidas gerais ou sugestões para melhorar o pacote laravel-tags
? Sinta-se à vontade para criar um problema no GitHub, tentaremos resolvê-lo o mais rápido possível.
Se você encontrou um bug relacionado à segurança, envie um email para [email protected] em vez de usar o rastreador de problemas.
Copie phpunit.xml.dist
para phpunit.xml
e preencha as credenciais do seu banco de dados.
Execute composer test
.
Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.
Consulte CONTRIBUINDO para obter detalhes.
Se você encontrou um bug relacionado à segurança, envie um email para [email protected] em vez de usar o rastreador de problemas.
Você é livre para usar este pacote, mas se ele chegar ao seu ambiente de produção, agradecemos muito que você nos envie um cartão postal de sua cidade natal, mencionando quais de nossos pacotes você está usando.
Nosso endereço é: Spatie, Kruikstraat 22, 2018 Antuérpia, Bélgica.
Publicamos todos os cartões postais recebidos no site da nossa empresa.
Freek Van der Herten
Todos os colaboradores
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.