/** * Load entity data by ID * * @param int|null $id * @return $this */ public function loadEntityData($id = null) { if (is_null($id)) { return $this; } $this->model = $this->model->getOrm()->whereEq($this->model->getIdField(), $id)->fetchModel(); if (empty($this->model)) { return $this; } $this->setFormValues($this->model->asArray()); foreach ($this->scaffold->getEntityFields($this->entity) as $field) { $fieldConfig = $this->scaffold->getEntityFieldConfig($this->entity, $field); if ((bool) (string) $fieldConfig->allow_null) { if (is_null($this->model->{$field})) { $checkboxNull = $this->getElementByName("set-null[{$field}]"); if ($checkboxNull instanceof \Magelight\Webform\Blocks\Elements\Checkbox) { $checkboxNull->setChecked(); } } } } return $this; }
/** * Get entity collection * * @return \Magelight\Db\Collection */ public function getCollection() { return \Magelight\Db\Collection::forge($this->scaffold->getEntityModel($this->entity)->getOrm())->setLimit(10)->setPage($this->page); }
/** * Delete entity action */ public function deleteAction() { $id = $this->request()->getGet('id'); $this->breadcrumbsBlock->addBreadcrumb('Delete ' . $this->entity . ' id=' . $id, 'admin/scaffold/{entity}/delete/{id}', ['entity' => $this->entity, 'id' => $id]); $block = \Magelight\Admin\Blocks\Scaffold\Delete::forge($this->entity, $id); $form = $block->getDeleteForm(); $form->loadFromRequest(); if ($form->isEmptyRequest()) { $this->view()->sectionReplace('content', $block); } else { if ($form->getFieldValue('id') === $id) { $scaffold = \Magelight\Admin\Models\Scaffold\Scaffold::forge(); $scaffold->loadEntities(); $model = $scaffold->getEntityModel($this->entity); $form->createResultRow(); if ($model->delete($id)) { $this->redirectInternal('admin/scaffold/{entity}', ['entity' => $this->entity]); } else { $form->addResult(__('Can`t delete')); } } } }
/** * Forgery */ public function __forge() { $this->scaffold = \Magelight\Admin\Models\Scaffold\Scaffold::forge(); $this->entities = $this->scaffold->loadEntities(); }