Laravel 10 – 13
PHP 8.2+
Low commit activity in last 18 months
A Laravel Nova package for publishable fields
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

roave/security-advisories
dev-latest

Runtime

^10.0 | ^11.0 | ^12.0 | ^13.0
laravel/nova
^4.0 | ^5.0
 Project Readme

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.