PHPackages                             codicastudio/tags-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. codicastudio/tags-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

codicastudio/tags-manager
=========================

A random Codica Studio package.

1.0.0(5y ago)03MITPHPPHP ^7.4 || ^8.0CI failing

Since Sep 25Pushed 5y ago1 watchersCompare

[ Source](https://github.com/codicastudio/tags-manager)[ Packagist](https://packagist.org/packages/codicastudio/tags-manager)[ Docs](https://github.com/codicastudio/tags-manager)[ RSS](/packages/codicastudio-tags-manager/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

A tags field for Nova apps
==========================

[](#a-tags-field-for-nova-apps)

[![Latest Version on Packagist](https://camo.githubusercontent.com/438a0371d716407128efe98ba92b481fe89de8a1513635684dff0340b85dbaf9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7370617469652f6e6f76612d746167732d6669656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/spatie/nova-tags-field)[![GitHub Workflow Status](https://camo.githubusercontent.com/946172b398d2f7a2462adb6035e5e78cf03a1ad53f8e13704c5209db9826fc61/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f7370617469652f6e6f76612d746167732d6669656c642f72756e2d74657374733f6c6162656c3d7465737473)](https://camo.githubusercontent.com/946172b398d2f7a2462adb6035e5e78cf03a1ad53f8e13704c5209db9826fc61/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f7370617469652f6e6f76612d746167732d6669656c642f72756e2d74657374733f6c6162656c3d7465737473)[![Total Downloads](https://camo.githubusercontent.com/e6ee5c7e8ff63c9629aa4f144cd5cf3c89afdd5a2ebe7781b8033474f2abae4e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7370617469652f6e6f76612d746167732d6669656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/spatie/nova-tags-field)

This package contains a Nova field to add tags to resources. Under the hood it uses the [spatie/laravel-tags](https://docs.spatie.be/laravel-tags) package.

[![screenshot of the tags field](https://camo.githubusercontent.com/07d7181c206d7877b92417f422741cb390322da2ae657554092e9f8e1a6f0379/68747470733a2f2f7370617469652e6769746875622e696f2f6e6f76612d746167732d6669656c642f73637265656e73686f742e706e67)](https://camo.githubusercontent.com/07d7181c206d7877b92417f422741cb390322da2ae657554092e9f8e1a6f0379/68747470733a2f2f7370617469652e6769746875622e696f2f6e6f76612d746167732d6669656c642f73637265656e73686f742e706e67)

Support us
----------

[](#support-us)

Learn how to create a package like this one, by watching our premium video course:

[![Laravel Package training](https://camo.githubusercontent.com/4c7f3720a29525e627f6004ee367e55def510e45d18e6bc974725812fa5cf257/68747470733a2f2f7370617469652e62652f6769746875622f7061636b6167652d747261696e696e672e6a7067)](https://laravelpackage.training)

We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us).

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards).

Requirements
------------

[](#requirements)

This Nova field requires MySQL 5.7.8 or higher.

Installation
------------

[](#installation)

First you must install [spatie/laravel-tags](https://github.com/spatie/laravel-tags) into your Laravel app. Here are [the installation instructions](https://docs.spatie.be/laravel-tags/v2/installation-and-setup) for that package.

Next, you can install this package in to a Laravel app that uses [Nova](https://nova.laravel.com) via composer:

```
composer require spatie/nova-tags-field
```

Usage
-----

[](#usage)

To make an Eloquent model taggable just add the `\Spatie\Tags\HasTags` trait to it:

```
class BlogPost extends \Illuminate\Database\Eloquent\Model
{
    use \Spatie\Tags\HasTags;

    ...
}
```

Next you can use the `Spatie\TagsField\Tags` field in your Nova resource:

```
namespace App\Nova;

use Spatie\TagsField\Tags;

class BlogPost extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            // ...

            Tags::make('Tags'),

            // ...
        ];
    }
}
```

Now you can view and add tags on the blog posts screen in your Nova app. All tags will be saved in the `tags` table.

Limiting suggestions
--------------------

[](#limiting-suggestions)

By default a tags field will display a maximum of 5 suggestions when typing into it. If you don't want to display any suggestions, tag on `withoutSuggestions()`.

```
Tags::make('Tags')->withoutSuggestions(),
```

You can change the number of suggestions with `limitSuggestions()`.

```
Tags::make('Tags')->limitSuggestions($maxNumberOfSuggestions),
```

Using types
-----------

[](#using-types)

The [underlying tags package](https://github.com/spatie/laravel-tags) has support for [tag types](https://docs.spatie.be/laravel-tags/v2/advanced-usage/using-types). To make your tags field save tags of a certain type just tack on the name of type when adding the field to your Nova resource.

```
// in your Nova resource

public function fields(Request $request)
{
    return [
        // ...

        Tags::make('Tags')->type('my-special-type'),

        // ...
    ];
}
```

Allowing only one tag
---------------------

[](#allowing-only-one-tag)

If the user is only allowed to select one tag for your resource you can call the `single` method.

```
// in your Nova resource

public function fields(Request $request)
{
    return [
        // ...

        Tags::make('Tags')->single(),

        // ...
    ];
}
```

The field will be rendered as a select form element. It will be populated by the names of the tags already saved.

Working with tags
-----------------

[](#working-with-tags)

For more info on how to work with the saved tags, head over to [the docs of spatie/laravel-tags](https://docs.spatie.be/laravel-tags/).

Administering tags in Nova
--------------------------

[](#administering-tags-in-nova)

If you want to perform crud actions on the save tags, just create a Nova resource for it. Here's an example.

```
namespace App\Nova;

use Illuminate\Http\Request;
use Laravel\Nova\Fields\Text;
use Spatie\Tags\Tag as TagModel;

class Tag extends Resource
{
    public static $model = TagModel::class;

    public static $title = 'name';

    public static $search = [
        'name',
    ];

    public function fields(Request $request)
    {
        return [
            Text::make('Name')->sortable(),
        ];
    }
}
```

### Show tags with a link to a Nova resource

[](#show-tags-with-a-link-to-a-nova-resource)

When creating the field, you can use the `withLinkToTagResource` method.
Example:

```
Tags::make('Tags')->withLinkToTagResource() // The resource App\Nova\Tag will be used
Tags::make('Tags')->withLinkToTagResource(\Custom\CustomTag::class) // The resource \Custom\CustomTag will be used
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Freek Van der Herten](https://github.com/freekmurze)

The Vue components that render the tags are based upon the tag Vue components created by [Adam Wathan](https://twitter.com/adamwathan) as shown in [his excellent Advanced Vue Component Design course](https://adamwathan.me/advanced-vue-component-design/).

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2059d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a33b354bea681b74be49f37bbe9f3c4f145dbefe0f2b5cbb705b0731bf13fd3?d=identicon)[codicastudio](/maintainers/codicastudio)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/codicastudio-tags-manager/health.svg)

```
[![Health](https://phpackages.com/badges/codicastudio-tags-manager/health.svg)](https://phpackages.com/packages/codicastudio-tags-manager)
```

###  Alternatives

[nicolasbize/magicsuggest

MagicSuggest is a multiple selection auto-suggest input box for Bootstrap 3.

1.3k83.3k4](/packages/nicolasbize-magicsuggest)[spatie/filament-markdown-editor

A markdown editor for Filament with code highlighting and image uploads

14940.6k3](/packages/spatie-filament-markdown-editor)[drupal-composer/preserve-paths

Composer plugin for preserving custom paths and supporting nested packages

271.1M5](/packages/drupal-composer-preserve-paths)[juststeveking/laravel-postcodes

A service wrapper around postcodes.io

81113.9k](/packages/juststeveking-laravel-postcodes)[b13/justincase

With incoming URLs, it does not matter if they are upper/lowercase, they just work.

17220.2k](/packages/b13-justincase)[soukicz/llm

LLM client with support for cache, tools and async requests

445.6k](/packages/soukicz-llm)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
