composer require mmerlijn/nova-checkboxes-field
use \mmerlijn\NovaCheckboxesField\Checkboxes;
Checkboxes::make('Roles')->options([
1 => 'Admin',
2=> 'Super user',
]);
You can customise how the values from checkbox fields are passed to your scripts. By default it's will cast all numeric keys to floats or integers, e.g. [1, 2, 3] instead of ["1", "2", "3"]. You can save disable this feature by calling withoutTypeCasting() to have the original array keys returned unmodified.
Checkboxes::make('Permissions')->options([
1 => 'Access Admin UI',
2 => 'Manage Users',
])->withoutTypeCasting(),
Checkboxes::make('users')
->options(App\User::pluck('name', 'id'))
->withoutTypeCasting(),
Add to fields
Checkboxes::make('Permissions','permissionArray')
->options(Permission::pluck('name', 'id')->toArray())
->hideFromIndex(),
Add to User model
public function setPermissionArrayAttribute(array $value)
{
$this->permissions()->sync($value);
}
public function getPermissionArrayAttribute()
{
return $this->permissions->map(fn($item) => $item->pivot->permission_id)->toArray();
}
Make changes after nova update
cd vendor/laravel/nova && npm install