novius / laravel-nova-publishable
A Laravel Nova package for publishable fields
Installs: 3 847
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 6
Forks: 0
Open Issues: 0
Requires
- php: >=8.2
- illuminate/support: ^10.0|^11.0
- laravel/nova: ^4.0
- novius/laravel-publishable: ^3.0.0
Requires (Dev)
- laravel/pint: ^1.10
README
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.