Model = $Model; if ($defaultRelations) { $this->actualRelations = $defaultRelations; } else { $this->actualRelations = $this->defaultRelations; } } /** * Get's a record by it's ID * * @param int */ public function get($id) { return $this->Model::find($id); } /** * Get's a record by it's ID * * @param int */ public function getWithRelations($id) { return $this->getQueryWithRelations()->where('id', $id)->get()->first()->toArray(); } /** * Get's all records. * * @return mixed */ public function all() { return $this->Model::all(); } /** * Get's all records. * * @return mixed */ public function allWithRelations() { return $this->getQueryWithRelations()->get()->toArray(); } /** * Deletes a record. * * @param int */ public function delete($id): bool { return $this->Model::destroy($id); } /** * Updates a post. * * @param int * @param array */ public function update($id, array $data): bool { return $this->Model::find($id)->update($data); } /** * create new Record * * @param array */ public function add($data): ?int { $obj = new $this->Model; if (! isset($data['canSee']) || $data['canSee'] == null) { $obj->canSee = true; } if (! isset($data['status']) || ! $data['status']) { $obj->status = \App\Enums\DbStatusFieldEnum::draft; } $obj->fill($data); $obj->save(); return $obj->id; } public function getModelName(): string { return get_class($this->Model); } }