This package allows you to manage Laravel Models which user Laravel Publishable in Laravel Nova.
- 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.
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(),
];
}
If you want to customize the lang files, you can publish them with:
php artisan vendor:publish --provider="Novius\LaravelNovaPublishable\LaravelNovaPublishableServiceProvider" --tag="lang"
Lint your code with Laravel Pint using:
composer run-script lint
This package is under GNU Affero General Public License v3 or (at your option) any later version.