Extended Laravel Nova BelongsTo field that can depend on other fields
aqjw/nova-belongs-to-dependency is a Laravel package for extended laravel nova belongsto field that can depend on other fields.
It currently has 0 GitHub stars and 337 downloads on Packagist (latest version v4.0.8).
Install it with composer require aqjw/nova-belongs-to-dependency.
Discover more Laravel packages by aqjw
or browse all Laravel packages to compare alternatives.
Last updated
This package is an extension of Laravel Nova's existing BelongsTo field and Vue components.
This package can be installed via command:
composer require aqjw/nova-belongs-to-dependency
The following will list categories with type_id equal to the value set in the first BelongsTo field.
use Aqjw\BelongsToDependency\BelongsToDependency;
...
return [
...
BelongsTo::make('Type'),
BelongsToDependency::make('User')
->dependsOn('type', 'type_id')
...
];
The method can take one or two parameters.
If you don't pass the second parameter, it will be generated from first one with the _id suffix.
This may depend on BelognsTo, Text, Enum, and others 🤷
BelongsToDependency::make('User')
->dependsOn('type', 'type_id'),
You can also pass an array as the first parameter. To make a dependency on two or more fields.
BelongsToDependency::make('User')
->dependsOn(['type', 'role']),
Or
BelongsToDependency::make('User')
->dependsOn([
'type' => 'type_id',
'role' => 'role_id',
]),
Use this method if you have many entries.
BelongsTo::make('Country')
->searchable(),
BelongsToDependency::make('State')
->searchable()
->dependsOn('country'),
BelongsToDependency::make('City')
->searchable()
->dependsOn('state'),
If you want to add your own conditions to the query then greet the buildQuery method.
BelongsToDependency::make('Product')
->dependsOn('category')
->buildQuery(function ($query, $values) {
$query->where($values)
->where('status', 'active');
}),
Use this method to change the resource format. This can be useful if you want to group items.
BelongsToDependency::make('Product')
->dependsOn('category')
->formatResource(function ($resource) {
return [
'display' => $resource->name,
'value' => $resource->id,
'group' => $resource->parent_category,
];
})
The MIT License (MIT). Please see License File for more information.