Download the PHP package ganyicz/nova-temporary-fields without Composer
On this page you can find all versions of the php package ganyicz/nova-temporary-fields. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ganyicz/nova-temporary-fields
More information about ganyicz/nova-temporary-fields
Files in ganyicz/nova-temporary-fields
Package nova-temporary-fields
Short Description Make Laravel Nova fields temporary
License MIT
Informations about the package nova-temporary-fields
Make any Laravel Nova field temporary
This package adds support for creating fields you don't want to persist in your models.
Why?
This package is meant to be used in conjunction with my other package Nova Callbacks.
Let's say you have a Product model with multiple prices depending on a currency defined in the Pricing model.
Now normally, you would use something like HasMany field on your Product resource. Although, this is not very intuitive for the admin. When he wants to update the product's pricing, he needs to go to the detail page and either create new pricing record or update an existing one. Not great.
What if you just wanted to have a price field for every currency, right inside your edit page? Let's look at the solution.
Pretty elegant, right?
By defining a field as temporary, Nova won't try to fill the attribute to your model, avoiding the Column not found
exception. Although you still have access to it inside your request.
The possibilties are endless.
Installation
You can install the package via composer:
Usage
- Apply
HasTemporaryFields
trait on your resource. - Chain
temporary()
method on any field you don't want to fill to your model.
TIP: Apply the trait on your base Resource class inside your Nova folder so that temporary fields are available for you in every new resource.
How does it work?
This package defines a temporary()
macro on the base Field
abstract class, which just sets a meta attribute _temp
to true.
The HasTemporaryFields
trait overrides fillFields
method on your Resource and filters out any fields with this meta attribute.