tableName = $tableName; return $this; } public function setPrimaryColumn(string $primaryColumn): self { $this->primaryColumn = $primaryColumn; return $this; } public function setSelectedColumns(array $selectedColumns): self { $this->selectedColumns = $selectedColumns; return $this; } public function setOrderByColumnWithOrders(array $orderByColumnWithOrders): self { $this->orderByColumnWithOrders = $orderByColumnWithOrders; return $this; } public function getQuery(): Builder { return $this->query; } public function setQuery(Builder $query): self { $this->query = $query; return $this; } public function setSelectableTableQuery(): self { $this->query = DB::table($this->tableName) ->select($this->selectedColumns); return $this; } public function getDropdowns(): array { if (count($this->orderByColumnWithOrders)) { foreach ($this->orderByColumnWithOrders as $column => $columnOrder) { $this->query->orderBy($column, $columnOrder); } } return $this->query->get()->toArray(); } }