This package is an extension of Laravel Nova's existing BelongsTo field and Vue components.
Originally created by manmohanjit, the original package was abandoned.
- PHP 7.3+
- Nova 4
Use the 1.x versions if you need support for Nova 3
You can install this package on a Laravel app that uses Nova via composer:
composer require webparking/nova-belongs-to-dependency
The following will list categories with type_id
equal to the value set in the first BelongsTo field.
use Webparking\BelongsToDependency\BelongsToDependency;
...
return [
...
BelongsTo::make('Type'),
BelongsToDependency::make('User')
->dependsOn('type', 'type_id'),
...
];
Look at the example below for other use cases.
Database Structure
- Type (id, name)
- Posts (id, type_id, category_id, title, body)
- Category (id, type_id, title)
We should only be able to assign categories to posts that belong to the same type.
This is how you would achieve it on the Nova category resource:
use Webparking\BelongsToDependency\BelongsToDependency;
...
return [
...
BelongsTo::make('Type'),
BelongsToDependency::make('User')
->dependsOn('type', 'type_id'),
...
];
This would work if you used a text/enum type
field too.
use Webparking\BelongsToDependency\BelongsToDependency;
...
return [
...
Select::make('Type')->options([
'post' => 'Post',
'page' => 'Page',
])>displayUsingLabels(),
BelongsToDependency::make('User')
->dependsOn('type', 'type'),
...
];
Please see CHANGELOG for more information on what has changed recently.
- nova-belongsto-depend (alternative)
- nova-dependency-container
This tool extends the base Laravel Nova BelongsTo field and is inspired by Nova Dependency Container.
The MIT License (MIT). Please see License File for more information.