novius/laravel-nova-publishable

A Laravel Nova package for publishable fields
10,798 2
Install
composer require novius/laravel-nova-publishable
Latest Version:3.1.2
PHP:>=8.2
License:AGPL-3.0-or-later
Last Updated:May 12, 2026
Links: GitHub  ·  Packagist
Maintainer: novius

Laravel Nova Publishable

Packagist Release License: AGPL v3

Introduction

This package allows you to manage Laravel Models which user Laravel Publishable in Laravel Nova.

Requirements

  • Laravel Nova >= 4.0
  • Laravel >= 10.0
  • PHP >= 8.2

NOTE: These instructions are for Laravel >= 10.0 and PHP >= 8.2 If you are using prior version, please see the previous version's docs.

Installation

You can install the package via composer:

composer require novius/laravel-nova-publishable

Add Publishable trait on your Nova Resource:

use Laravel\Nova\Resource;
use Novius\LaravelNovaPublishable\Nova\Traits\Publishable;

class Post extends Resource
{
    use Publishable;

Then you can insert Publishable fields on your Nova Resource. You can also add the Publication Status Filter.

class Post extends Resource
{
    public function fields(NovaRequest $request): array
    {
        return [
            PublicationBadge::make(), // Only display on not forms
            PublicationStatusField::make()->onlyOnForms(),
            PublishedFirstAt::make()->hideFromIndex(),
            PublishedAt::make()->onlyOnForms(),
            ExpiredAt::make()->onlyOnForms(),
        ];
    }

    public function filters(NovaRequest $request): array
    {
        return [
            new PublicationStatus(),
        ];
    }

You can use the UpdatePlucationStatus action to mass update the publication status of your models.

    public function actions(Request $request): array
    {
        return [
            UpdatePublicationStatus::make(),
        ];
    }

Lang files

If you want to customize the lang files, you can publish them with:

php artisan vendor:publish --provider="Novius\LaravelNovaPublishable\LaravelNovaPublishableServiceProvider" --tag="lang"

Lint

Lint your code with Laravel Pint using:

composer run-script lint

Licence

This package is under GNU Affero General Public License v3 or (at your option) any later version.

Related Packages

maatwebsite/laravel-nova-excel

Supercharged Excel exports for Laravel Nova Resources

7,034,737 401
vyuldashev/nova-permission

A Laravel Nova tool for Spatie's Permission library.

2,635,677 429
unm/laravel4-opencloud

A laravel 4.1 service provider package that wraps the Rackspace/Openstack PHP SD...

4 7
spatie/nova-backup-tool

A Laravel Nova tool to backup your application.

599,910 360
spatie/nova-tail-tool

A Laravel Nova tool to display the application log.

129,750 119