PHPackages                             arbory/nova-grouped-boolean-field-group - 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. [Templating &amp; Views](/categories/templating)
4. /
5. arbory/nova-grouped-boolean-field-group

ActiveLibrary[Templating &amp; Views](/categories/templating)

arbory/nova-grouped-boolean-field-group
=======================================

A Laravel Nova field.

2.0.0(3y ago)0256MITVuePHP ^7.3|^8.0

Since Jun 6Pushed 3y ago4 watchersCompare

[ Source](https://github.com/arbory/nova-grouped-boolean-field-group)[ Packagist](https://packagist.org/packages/arbory/nova-grouped-boolean-field-group)[ RSS](/packages/arbory-nova-grouped-boolean-field-group/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)DependenciesVersions (5)Used By (0)

Grouped boolean group field
===========================

[](#grouped-boolean-group-field)

Field which extends default Laravel Nova BooleanGroup field to be able to pass grouped collections.

To resolve and hydrate the field values, custom callbacks can be passed either to field constructor as arguments or via `fillUsing()` and `resolveUsing()` field callbacks.

For field values, either pass a grouped collection or a custom callback to `options()` field callback.

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

[](#installation)

`composer require arbory/nova-grouped-boolean-field-group`

Basic Usage:
------------

[](#basic-usage)

Field instantiation with all arguments passed via constructor:

```
GroupedBooleanGroup::make(
    __('nova-permission-tool::roles.permissions'),
    'permissions',
    'name',
    function ($value, $model) {
        return $model->resolveNovaPermissions();
    },
    function ($request, $model, string $attribute, string $requestAttribute) {
        return $model->saveNovaPermissions(json_decode($request[$requestAttribute], true));
    }
)->options(Permission::getPermissionsGroups())
```

or via field callbacks:

```
GroupedBooleanGroup::make(
    __('nova-permission-tool::roles.permissions'),
    'permissions',
    'name'
)
->fillUsing(function ($request, $model, string $attribute, string $requestAttribute) {
    return $model->saveNovaPermissions(json_decode($request[$requestAttribute], true));
})
->resolveUsing(function ($value, $model) {
    return $model->resolveNovaPermissions();
})
->options(Permission::getPermissionsGroups())
```

### Mapping field options

[](#mapping-field-options)

By default, field option key and value pairs will contain value of specified `optionNameAttribute`. For custom option labels, use `setOptionLabelAttribute()` field method.

### Customising field layout

[](#customising-field-layout)

The field has 3 custom layouts available - row layout, full width column layout and full width layout.

Row layout can be enabled via `setRowLayout()` method.

Full width column layout can be enabled via `setFullWidthColumnLayout()` method.

Full width layout can be enabled via `setFullWidth()` method.

### Field group and global toggles

[](#field-group-and-global-toggles)

Field groups and entire field content can be made collapsible.

Field group toggles can be enabled via `withGroupToggling()` method. Global field toggle can be enabled via `withGlobalToggle()` method.

When using toggles, it is also possible to specify toggle state, whether the field or groups should be open on page load.

To keep groups open in form view, use `openGroupsInForm()` method. To keep groups open in details view, use `openGroupsInDetail()` method. To keep groups open in both views, use `openGroups()` method.

To keep field open in form view, use `openFieldInForm()` method. To keep field open in details view, use `openFieldInDetails()` method. To keep field open in both views, use `openField()` method.

### Group and global select all

[](#group-and-global-select-all)

This feature enables a checkbox, which will make it possible to toggle an entire group or all checkboxes within this field.

To enable group select all checkbox, use `withGroupSelectAll()`. To enable global select all checkbox, use `withGlobalSelectAll()`.

### Filters

[](#filters)

It is also possible to add filters via `withFilters()` method.

The method accepts a single parameter with filter options of type array. This filter toggles field groups by group names that come from field field options collection. Filter options should be keyed as `['label' => $label, 'value' => $value]`.

A brief example of preparing a filter options collection:

```
return Permission::query()
        ->pluck('owner_type')
        ->unique()
        ->map(function ($permissionOwner) {
            $filterOption = self::formatPermissionGroupKey($permissionOwner);

            return ['label' => $filterOption, 'value' => $filterOption];
        })
        ->values()
        ->toArray();
```

### Custom translations for global toggle and filter field

[](#custom-translations-for-global-toggle-and-filter-field)

It is possible to set custom field labels for global toggle and filter field.

To do so, use `setGlobalSelectAllLabel()` or `setFilterLabel()` method and pass a string of your choice.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83.3% 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 ~0 days

Total

2

Last Release

1425d ago

Major Versions

1.0.0 → 2.0.02022-06-14

PHP version history (2 changes)1.0.0PHP &gt;=7.4.0

2.0.0PHP ^7.3|^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/686243?v=4)[Miks Miķelsons](/maintainers/miks)[@miks](https://github.com/miks)

---

Top Contributors

[![o8scure](https://avatars.githubusercontent.com/u/37236345?v=4)](https://github.com/o8scure "o8scure (5 commits)")[![dp-cube](https://avatars.githubusercontent.com/u/199728766?v=4)](https://github.com/dp-cube "dp-cube (1 commits)")

---

Tags

laravelnova

### Embed Badge

![Health badge](/badges/arbory-nova-grouped-boolean-field-group/health.svg)

```
[![Health](https://phpackages.com/badges/arbory-nova-grouped-boolean-field-group/health.svg)](https://phpackages.com/packages/arbory-nova-grouped-boolean-field-group)
```

###  Alternatives

[whitecube/nova-flexible-content

Flexible Content &amp; Repeater Fields for Laravel Nova.

8053.0M25](/packages/whitecube-nova-flexible-content)[outl1ne/nova-multiselect-field

A multiple select field for Laravel Nova.

3402.9M2](/packages/outl1ne-nova-multiselect-field)[emilianotisato/nova-tinymce

This Nova package allow you to use TinyMCE editor for text areas.You can customize the editor options and... you can upload images to your server and put them rigth there on the text without leaving the text editor!

116884.3k4](/packages/emilianotisato-nova-tinymce)[silvanite/novafieldcheckboxes

A Laravel Nova field to display a number of multi-select options using checkboxes.

70846.9k1](/packages/silvanite-novafieldcheckboxes)[waynestate/nova-ckeditor4-field

This nova package allows you to use CKEditor 4 for text areas.

62739.1k8](/packages/waynestate-nova-ckeditor4-field)[saumini/ellipsis-textarea

A Laravel Nova textarea field with ellipsis support

12146.9k](/packages/saumini-ellipsis-textarea)

PHPackages © 2026

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