Blueprint Nova Addon
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=blueprint-nova-config
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.