При использовании обработчика AJAX в FormController вы можете обновить одно поле в вашей форме, используя следующее:
public function onYourAjaxHandler($recordID)
{
$model = MyModel::findOrFail($recordID);
$model->fieldToUpdate = "new value";
$this->initForm($model);
$fieldMarkup = $this->formGetWidget()->renderField('fieldToUpdate', ['useContainer' => true]);
return [
'#field-id' => $fieldMarkup
];
}
Если вам нужно заменить контейнер поля, установите useContainer => false. Если вам нужно сохранить контейнер, установите useContainer => true.
Начиная с версии v452 OctoberCMS, теперь можно напрямую использовать метод formRenderField (), поскольку в него добавлен аргумент «options»:
$this->formRenderField('fieldToUpdate', ['useContainer'=>false])