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;
 }
 function getForm()
 {
     $form = new LaraForm($this->relation);
     $form->putTbHidden('relation')->setValue($this->relation);
     $options = $this->getOptions();
     if (!is_array($options)) {
         $options = [];
     }
     $form->putTbGroupCheckbox('has_many', $options, false);
     $ids = $this->ids();
     $form->initValues(['has_many' => array_combine($ids, $ids)]);
     return $form;
 }
 function getForm()
 {
     $form = new LaraForm($this->relation);
     $form->putTbHidden('relation')->setValue($this->relation);
     $method = \Str::camel('relation_' . $this->relation);
     $model = call_user_func([$this, $method]);
     $options = $model::orderBy($this->orderByModel())->listsExt();
     if (!is_array($options)) {
         $options = [];
     }
     $method = \Str::camel('empty_' . $this->relation);
     if (method_exists($this, $method)) {
         $empty = call_user_func([$this, $method]);
         $options = [0 => $empty] + $options;
     }
     $form->putTbGroupRadio('belongs_to', $options, false);
     $ids = $this->ids();
     $form->initValues(['belongs_to' => $ids]);
     return $form;
 }