Downloads
Stars
Version
Belongs To Many field to represent many to many relationship in field. This Field allow attaching relationships easily, you can pass query to the Multiple Select.
composer require everestmx/nova-belongs-to-many-field
Method relationModel() no more needed, to prevent conflicts it will be there. And trait HasBelongsToMany no more neede too, both will be in repo, but doesn't work.
In the resource you need to pass:
use Everestmx\BelongsToManyField\BelongsToManyField;
public function fields(Request $request){
BelongsToManyField::make('Role Label', 'roles', 'App\Nova\Role')
->options(\App\Role::all()),
}
Optional
use Everestmx\BelongsToManyField\BelongsToManyField;
public function fields(Request $request){
BelongsToManyField::make('Role Label', 'roles', 'App\Nova\Role')
->options(\App\Role::all())
->optionsLabel('title'),
}
use Everestmx\BelongsToManyField\BelongsToManyField;
public function fields(Request $request){
BelongsToManyField::make('Role Label', 'roles', 'App\Nova\Role')
->options(\App\Role::all())
->isAction(),
}
To obtain the data that is send in action do it:
public function handle(ActionFields $fields, Collection $models)
{
// Get the expenseTypes from the request because the Field BelongsToManyField does not send it
$values = array_column(json_decode(request()->roles, true),'id');
foreach ($models as $model) {
$model->roles()->sync($values);
}
}
This package implement all Laravel Validations, you need to pass the rules in rules method, rules are listed on laravel validations rules for arrays*.
use Everestmx\BelongsToManyField\BelongsToManyField;
public function fields(Request $request){
BelongsToManyField::make('Role Label', 'roles', 'App\Nova\Role')
->options(\App\Role::all())
->relationModel(\App\User::class)
->rules('required', 'min:1', 'max:5', 'size:3' new CustomRule),
}
For translations of this validations, use normal laravel validations translations.