Возможно ли расширить 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.
}
}
спасибо.