naoray / blueprint-nova-addon
Fund package maintenance!
Naoray
Installs: 23 062
Dependents: 1
Suggesters: 0
Security: 0
Stars: 71
Watchers: 3
Forks: 37
Open Issues: 7
Requires
- illuminate/pipeline: ^6.0 || ^7.0 || ^8.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0
- laravel-shift/blueprint: ^1.18 || ^2.0
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ^4.0 || ^5.0 || ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-11-17 14:51:00 UTC
README
📣 Shoutout to Jason McCreary whose Blueprint package lays the groundwork for this small addon. Thank you Jason 🙌
Installing this addon will allow you to generate your Nova resources with the php artisan blueprint:build
command.
Installation
You can install this package and Blueprint via composer:
composer require --dev naoray/blueprint-nova-addon
⚠️ You need to have laravel nova installed in order for the resource generation to take place!
Usage
Refer to Blueprint's Basic Usage to get started. Afterwards you can run the blueprint:build
command to generate Nova resources automatically. To get an idea of how easy it is you can use the example draft.yaml
file below.
# draft.yaml models: Post: author_id: id foreign:users title: string:400 content: longtext published_at: nullable timestamp relationships: HasMany: Comment Comment: post_id: id foreign content: longtext published_at: nullable timestamp
From these 13 lines of YAML, this addon will generate 2 Nova resources which are pre-filled with 14 fields.
// App/Nova/Comment.php public function fields(Request $request) { return [ ID::make()->sortable(), Textarea::make('Content') ->rules('required', 'string'), DateTime::make('Published at'), BelongsTo::make('Post'), DateTime::make('Created at'), DateTime::make('Updated at'), ]; } // App/Nova/Post.php public function fields(Request $request) { return [ ID::make()->sortable(), Text::make('Title') ->rules('required', 'string', 'max:400'), Textarea::make('Content') ->rules('required', 'string'), DateTime::make('Published at'), BelongsTo::make('Author', 'author', User::class), HasMany::make('Comments'), DateTime::make('Created at'), DateTime::make('Updated at'), ]; }
Configuration
You may publish the configuration with the following command:
php artisan vendor:publish --tag=nova_blueprint
Timestamp fields
To disable the generation of timestamp
fields for all Nova resources set this option to false
.
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email krishan.koenig@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.