PHPackages                             eom-plus/nova-depend-fill - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. eom-plus/nova-depend-fill

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

eom-plus/nova-depend-fill
=========================

Fill Laravel Nova field based on value from other field.

0.0.4(3y ago)21.6k—0%1MITPHPPHP ^7.3|^8.0

Since Dec 23Pushed 3y ago1 watchersCompare

[ Source](https://github.com/operativeit/nova-depend-fill)[ Packagist](https://packagist.org/packages/eom-plus/nova-depend-fill)[ RSS](/packages/eom-plus-nova-depend-fill/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

Nova depend fill
================

[](#nova-depend-fill)

Installation
------------

[](#installation)

```
composer require eom-plus/nova-depend-fill
```

Requirements
------------

[](#requirements)

- `php: >=8.0`
- `laravel/nova: ^4.0`

Description
-----------

[](#description)

Fill value and/or update options of a Laravel Nova field depends of value of another field.

This custom field is for Nova 4 only and it's based on the following original works:

- [klepak/nova-depend-fill](https://github.com/klepak/nova-depend-fill)
- [alexwenzel/nova-dependency-container](https://github.com/alexwenzel/nova-dependency-container)
- [epartment/nova-dependency-container](https://github.com/epartment/nova-dependency-container)

Usage
-----

[](#usage)

You can fill one or multiple fields. Values are fetch from callback set to method *updateValuesUsing()*. You can also using magic methods such *update\[Field\]ValueUsing()* (eg: updateEmailValueUsing) with individual callback per target field.

You can set select options in the same way using global method *setOptionsUsing()* or magic one such *set\[Field\]OptionsUsing()* (eg: setPersonOptionsUsing).

### Simple example

[](#simple-example)

```
DependFill::make('template')
    ->fields([
        Email::make('email'),
        Text::make('name'),
    ])
    ->dependsOn(
        Select::make('person')
            ->options([
                'person1' => 'Person 1',
                'person2' => 'Person 2'
            ])
    )
    ->updateValuesUsing(function ($value) {
        return [
            'name' => Str::upper($value),
            'email' => $value '@mydomain.local',
        ];
    })
    ->withMeta(['value' => 'person2'])
])
```

### Example with only one target field and magic callback method "updateEmailValueUsing"

[](#example-with-only-one-target-field-and-magic-callback-method-updateemailvalueusing)

```
DependFill::make('template')
    ->field(
        Email::make('email'),
    )
    ->dependsOn(
        Select::make('person')
            ->options([
                'person1' => 'Person 1',
                'person2' => 'Person 2'
            ])
    )
    ->updateEmailValueUsing(function ($value) {
        return $value . '@mydomain.com';
    })
    ->withMeta(['value' => 'person2'])
])
```

### Example filling dynamically select list using a callback.

[](#example-filling-dynamically-select-list-using-a-callback)

Options format that must return callback is not exactly the same as Nova documentation, you must specify 'value' key in the list instead use it as main array key

```
    $options = [
        ['label' => 'Person 1', 'value' => 'person1', 'group'=> 'group 1'],
        ['label' => 'Person 2', 'value' => 'person2', 'group'=> 'group 1']
    ]

```

instead of

```
     $options = [
        'person1' => ['label' => 'Person 1' 'group'=> 'group 1'],
        'person2' => ['label' => 'Person 2', 'group'=> 'group 1']
    ]

```

```
DependFill::make('template')
    ->field(
        Email::make('email'),
    )
    ->dependsOn(
        Select::make('person')
    )
    ->setPersonOptionsUsing(function($value, $model) {
        return [
            ['label' => 'Person 1', 'value' => 'person1', 'group'=> 'group 1'],
            ['label' => 'Person 2', 'value' => 'person2', 'group'=> 'group 1']
        ];
    })
    ->updateEmailValueUsing(function ($value) {
        return $value . '@mydomain.com';
    })
    ->withMeta(['value' => 'person2'])
])
```

Known bugs
----------

[](#known-bugs)

Fields are not rendered properly on index and details page.

Future developments
-------------------

[](#future-developments)

- Add support for relevant (hide/show), readonly, disabled based on dependencies and mightbe on expression as in XForms
- Might make options array format to match exactly the same as Nova select field
- Support for [flexible content](https://github.com/whitecube/nova-flexible-content)
- ...

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

4

Last Release

1239d ago

PHP version history (2 changes)0.0.1PHP &gt;=7.1.0

0.0.2PHP ^7.3|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6cf1cdc324d411dfc6db2f2e6ff9d017c704dc023a8d6d539e09123df73ecbf4?d=identicon)[scramatte](/maintainers/scramatte)

---

Top Contributors

[![scramatte](https://avatars.githubusercontent.com/u/188766?v=4)](https://github.com/scramatte "scramatte (13 commits)")

---

Tags

laravelnova

### Embed Badge

![Health badge](/badges/eom-plus-nova-depend-fill/health.svg)

```
[![Health](https://phpackages.com/badges/eom-plus-nova-depend-fill/health.svg)](https://phpackages.com/packages/eom-plus-nova-depend-fill)
```

###  Alternatives

[dillingham/nova-attach-many

Attach Many Nova field

2712.0M2](/packages/dillingham-nova-attach-many)[sbine/route-viewer

A Laravel Nova tool to view your registered routes.

57215.9k](/packages/sbine-route-viewer)[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

14720.0k](/packages/markwalet-nova-modal-response)[alexwenzel/nova-dependency-container

A Laravel Nova 4 form container for grouping fields that depend on other field values.

461.0M2](/packages/alexwenzel-nova-dependency-container)[stepanenko3/nova-cards

A Laravel Nova info cards.

33143.0k](/packages/stepanenko3-nova-cards)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
