Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 6 days 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 (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-01T12:20:59.000Z (over 1 year ago)
- Last Synced: 2025-01-21T16:36:52.141Z (14 days ago)
- Topics: blueprint, laravel, nova
- Language: PHP
- Homepage:
- Size: 95.7 KB
- Stars: 71
- Watchers: 3
- Forks: 37
- 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
![Build Status](https://travis-ci.org/Naoray/blueprint-nova-addon.svg?branch=master)
[![Total Downloads](https://img.shields.io/packagist/dt/naoray/blueprint-nova-addon.svg?style=flat)](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: CommentComment:
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 [email protected] 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.