function buildForm() { $form = new LaraForm($this->relation); $form->putTbHidden('relation')->setValue($this->relation); $options = []; $model = $this->traitEntityBelongsToMany_getBelongsModel(); if ($model) { $options = $model::orderBy($this->orderByModel())->listsExt(); if (!is_array($options)) { $options = []; } } $form->putTbGroupCheckbox('belongs_to_many', $options, false); $ids = $this->ids(); $form->initValues(['belongs_to_many' => array_combine($ids, $ids)]); if ($form->validate()) { $many = $form->getFieldValue('belongs_to_many'); $filtered = array_filter($many, function ($value) { return $value; }); $ids = array_keys($filtered); $this->model->{$this->relation}()->sync($ids); } $this->traitEntityBelongsToMany_form = $form; }