cgView->viewPath = KERNEL_MODULES_DIR . '/option/views/'; $this->optionService = new OptionService(); } public function actionCreate(): void { $this->cgView->render('form.php'); } #[NoReturn] public function actionAdd(): void { $optionForm = new CreateOptionForm(); $optionForm->load($_REQUEST); if ($optionForm->validate()) { $option = $this->optionService->create($optionForm); if ($option) { $this->redirect('/admin/option'); } } $this->redirect('/admin/option/create'); } public function actionIndex($page_number = 1): void { $this->cgView->render('index.php', ['page_number' => $page_number]); } /** * @throws \Exception */ public function actionView(int $id): void { $option = Option::find($id); if (!$option) { throw new \Exception('Option not found'); } $this->cgView->render("view.php", ['option' => $option]); } /** * @throws \Exception */ public function actionUpdate(int $id): void { $model = Option::find($id); if (!$model) { throw new \Exception('Option not found'); } $this->cgView->render("form.php", ['model' => $model]); } /** * @throws \Exception */ public function actionEdit(int $id): void { $option = Option::find($id); if (!$option) { throw new \Exception('Option not found'); } $optionForm = new CreateOptionForm(); $optionForm->load($_REQUEST); if ($optionForm->validate()) { $option = $this->optionService->update($optionForm, $option); if ($option) { $this->redirect('/admin/option/' . $option->id); } } $this->redirect('/admin/option/update/' . $id); } #[NoReturn] public function actionDelete(int $id): void { Option::find($id)->delete(); $this->redirect('/admin/option'); } }