https://github.com/naoray/blueprint-nova-addon
A Blueprint addon which generates Nova resources
https://github.com/naoray/blueprint-nova-addon
blueprint laravel nova
Last synced: about 1 year ago
JSON representation
A Blueprint addon which generates Nova resources
- Host: GitHub
- URL: https://github.com/naoray/blueprint-nova-addon
- Owner: Naoray
- License: mit
- Created: 2020-04-15T14:41:09.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-08-01T12:20:59.000Z (almost 3 years ago)
- Last Synced: 2025-03-31T10:08:26.427Z (about 1 year ago)
- Topics: blueprint, laravel, nova
- Language: PHP
- Homepage:
- Size: 95.7 KB
- Stars: 71
- Watchers: 2
- Forks: 38
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Blueprint Nova Addon

[](https://packagist.org/packages/naoray/blueprint-nova-addon)
:mega: Shoutout to [Jason McCreary](https://github.com/jasonmccreary) whose [Blueprint](https://github.com/laravel-shift/blueprint) package lays the groundwork for this small addon. Thank you Jason :raised_hands:
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:
```bash
composer require --dev naoray/blueprint-nova-addon
```
> :warning: You need to have [laravel nova](https://nova.laravel.com/) installed in order for the resource generation to take place!
## Usage
Refer to [Blueprint's Basic Usage](https://github.com/laravel-shift/blueprint#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.
```yaml
# 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.
```php
// 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:
```bash
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
``` bash
composer test
```
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Security
If you discover any security related issues, please email krishan.koenig@gmail.com instead of using the issue tracker.
## Credits
- [Krishan König](https://github.com/naoray)
- [All Contributors](../../contributors)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.