name)) { $this->name = 'contact_id'; } $this->setRoutes(); $this->label = trans_choice('general.' . Str::plural($this->type), 1); $this->contacts = Model::type($this->type)->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id'); $model = $this->getParentData('model'); $contact_id = old('contact.id', old('contact_id', null)); if (! empty($contact_id)) { $this->selected = $contact_id; if (! $this->contacts->has($contact_id)) { $contact = Model::find($contact_id); $this->contacts->put($contact->id, $contact->name); } } if (! empty($model) && ! empty($model->contact_id)) { $this->selected = $model->contact_id; $selected_contact = $model->contact; } if (! empty($selected_contact) && ! $this->contacts->has($selected_contact->id)) { $this->contacts->put($selected_contact->id, $selected_contact->name); } return view($this->view); } public function setRoutes(): void { $alias = config('type.contact.' . $this->type . '.alias'); $prefix = config('type.contact.' . $this->type . '.route.prefix'); $parameters = ['search' => 'enabled:1']; $this->path = ! empty($alias) ? route("{$alias}.modals.{$prefix}.create") : route("modals.{$prefix}.create"); $this->remoteAction = ! empty($alias) ? route("{$alias}.{$prefix}.index", $parameters) : route("{$prefix}.index", $parameters); } }