📣 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.
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!
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 timestampFrom 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'),
];
}You may publish the configuration with the following command:
php artisan vendor:publish --tag=nova_blueprintTo disable the generation of timestamp fields for all Nova resources set this option to false.
composer testPlease see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.