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; }