OctoberCMS расширяет FormController для использования в компонентах (front-end) - PullRequest
0 голосов
/ 13 марта 2019

Возможно ли расширить FormController (находится в модулях \ backend \ поведениеiors \ FormController)? быть использованы в компонентах, чтобы сохранить мои данные.

Так что функции внутреннего и внешнего интерфейса имеют одинаковую функцию.

Когда я нажимаю кнопку Сохранить во внешнем интерфейсе, я хочу вызвать приведенный ниже код из FormController, чтобы сохранить мои данные.

public function create_onSave($context = null)
{
    $this->context = strlen($context) ? $context : $this->getConfig('create[context]', self::CONTEXT_CREATE);

    $model = $this->controller->formCreateModelObject();
    $model = $this->controller->formExtendModel($model) ?: $model;

    $this->initForm($model);

    $this->controller->formBeforeSave($model);
    $this->controller->formBeforeCreate($model);

    $modelsToSave = $this->prepareModelsToSave($model, $this->formWidget->getSaveData());
    Db::transaction(function () use ($modelsToSave) {
        foreach ($modelsToSave as $modelToSave) {
            $modelToSave->save(null, $this->formWidget->getSessionKey());
        }
    });

    $this->controller->formAfterSave($model);
    $this->controller->formAfterCreate($model);

    Flash::success($this->getLang("{$this->context}[flashSave]", 'backend::lang.form.create_success'));

    if ($redirect = $this->makeRedirect('create', $model)) {
        return $redirect;
    }
}

// Мой компонент

class MyClass extends ComponentBase 
{     
  public function onSave()
  {
    //Call the modules\backend\behaviors\FormController here to save data.
  }
}

спасибо.

...