Download the PHP package epartment/nova-dependency-container without Composer
On this page you can find all versions of the php package epartment/nova-dependency-container. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
All versions of nova-dependency-container with dependencies
Informations about the package nova-dependency-container
Nova Field Dependency Container
A container for grouping fields that depend on other field values. Dependencies can be set on any field type or value.
- install v1.2.x for Laravel v5.8 or v6.x and Nova 2.x
- install v1.1.2 for Laravel v5.7 and Nova v1.x
The package can be installed through Composer.
- Add the
Epartment\NovaDependencyContainer\HasDependenciestrait to your Nova Resource.
- Add the
Epartment\NovaDependencyContainer\NovaDependencyContainerto your Nova Resource
- Add the
Epartment\NovaDependencyContainer\ActionHasDependenciestrait to your Nova Actions that you wish to use dependencies on.
The package supports four kinds of dependencies:
These dependencies can be combined by chaining the methods on the
The fields used as dependencies can be of any Laravel Nova field type. Currently only two relation field types are supported,
Here is an example using a checkbox:
If we follow the example of a Post model belongsTo a User model, taken from Novas documentation BelongsTo, the dependency setup has the following construction.
We use the singular form of the
belongsTo resource in lower case, in this example
post. Then we define in dot notation, the property of the resource we want to depend on. In this example we just use the
id property, as in
Post resource with
id 2 is being selected, a
Boolean field will appear.
dependsOn method should be pointing to the name of the intermediate table. If it is called
role_user, the setup should be
If the pivot field name occurs multiple times, consider using custom intermediate table models and define it in the appropiate model relation methods. The only reliable solution I found was using mutators to get/set a field which was being used multiple times. Although this may seem ugly, the events which should be fired on the intermediate model instance, when using an Observer, would work unreliable with every new release of Nova.
If Nova becomes reliable firing eloquent events on the intermediate table, I will update this examples with a more elegant approach using events instead.
Here is an (ugly) example of a get/set mutator setup for an intermediate table using a pivot field called
And now for the dependency container.
A similar example taken from Novas documentation for MorphTo is called commentable. It uses 3 Models;
Comment has the morphable fields
MorphTo dependency, the following construction is needed.
Commentable becomes lower case
commentable and the value to depend on is the resource singular form. In this example the dependency container will add two additional fields,
Additional Text and
Visible, only when the
Post resource is selected.
The MIT License (MIT). Please see License File for more information.