示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * 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);
 }
示例#3
0
 /**
  * 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'));
             }
         }
     }
 }
示例#4
0
 /**
  * Forgery
  */
 public function __forge()
 {
     $this->scaffold = \Magelight\Admin\Models\Scaffold\Scaffold::forge();
     $this->entities = $this->scaffold->loadEntities();
 }