/** * Handle the command. */ public function handle() { $model = $this->builder->getModel(); $entries = $this->builder->getEntries(); /** * If the builder has an entries handler * then call it through the container and * let it load the entries itself. */ if (is_string($entries) || $entries instanceof \Closure) { app()->call($entries, ['builder' => $this->builder]); } $entries = $this->builder->getTableEntries(); /** * If the entries have already been set on the * table then return. Nothing to do here. * * If the model is not set then they need * to load the table entries themselves. */ if (!$entries->isEmpty() || !$model) { return; } /** * Resolve the model out of the container. */ $repository = $this->builder->getRepository(); /** * If the repository is an instance of * TableRepositoryInterface use it. */ if ($repository instanceof TableRepositoryInterface) { $this->builder->setTableEntries($repository->get($this->builder)); } }
/** * Set the table entries. * * @param \Illuminate\Support\Collection $entries * @return $this */ public function setTableEntries(\Illuminate\Support\Collection $entries) { if (!$this->getFieldType()) { $entries = $entries->sort(function ($a, $b) { return array_search($a->id, $this->getUploaded()) - array_search($b->id, $this->getUploaded()); }); } return parent::setTableEntries($entries); }