Я пытаюсь создать агентство по аренде автомобилей, и в бэкэнде я хочу иметь возможность устанавливать ставки. Однако есть два разных (но связанных) способа сделать это: либо по отдельной дате, либо сразу, выбрав диапазон дат и перебрав отдельные даты в цикле.
В контроллере для этого определены два действия, calendar()
и bulk()
соответственно. Я также выбираю yaml-файл полей формы для загрузки, задав общедоступное свойство $formConfig
. Мой контроллер выглядит примерно так:
class AvailableCars extends Controller
{
public $formConfig = 'config_form.yaml';
public function bulk($recordId = null, $context = null)
{
$this->pageTitle = "Bulk update rates";
$model = $this->formFindModelObject($recordId);
$this->initForm($model);
}
public function calendar($recordId = null, $context = null)
{
$this->pageTitle = "Update rates for single date on calendar";
$model = $this->formFindModelObject($recordId);
$this->initForm($model);
}
public function onSave($recordId = null, $context = null)
{
$this->formFindModelObject($recordId)->save();
Flash::success("Rates saved successfully");
}
}
Проблема в том, что это работает для одного действия, но если я поставлю, например:
$this->formConfig = 'alternate_fields.yaml';
в любом из методов bulk()
или calendar()
он не переопределяет поведение и загружает другой файл конфигурации формы yaml; и он даже выдает ошибку, если он ранее не был определен как свойство класса. Поэтому я могу предположить, что этот yaml-файл загружается до того, как будет вызван любой из этих методов.
Итак, мой вопрос: есть ли способ загрузить динамический formConfig
yaml файл на основе точки входа? Или это вообще хорошая практика в Laravel / October, или каждый контроллер должен отвечать только за одну вещь и иметь только один способ создать / прочитать / обновить / уничтожить модель?