Symfony Установить значение поля формы в doSave - PullRequest
0 голосов
/ 13 декабря 2011

Мне нужно переопределить мою форму следующим образом:

  protected function doSave($con = null)
  {
    $filename= Helper::generateFilename($this->getValue('name')).'jpg';
    imagejpeg(Helper::createImage($this->getValues()), sfConfig::get('sf_upload_dir').'/poster/'.$filename );
    /* Here I need to set value of *fielname* field of the form equal to 
     $filename  */
    parent::doSave($con);
  }

Helper.class.php расположен в /lib/, поэтому он действует как вспомогательный класс.

generateFilename фактически дает рандомизированную строку.поскольку в форме нет функции типа setValue, я застрял.

Ответы [ 2 ]

1 голос
/ 24 мая 2013

Я попробовал подход МакГивера, но у меня не получилось.Не уверен, что сделал что-то не так.Версия Syfmony 1.4 с Doctrine.

Мне пришлось переопределить функцию updateObject () внутри класса формы.В моем случае это внутри TimesheetForm.class.php.Мне пришлось изменить статус расписания на основе действий пользователя.

Ниже приведен фрагмент кода, который я пробовал.Он обновил объект перед сохранением.Что было замечено в БД.

    public function updateObject($values = null)
    {
        $object = parent::updateObject($values);
        $object->setStatus("Submitted");

        return $object;
    }

Я не реализовывал / не отменял функцию doSave ().Я использую Symfony 1.4.Надеюсь, что выше помогает.

0 голосов
/ 13 декабря 2011

Вы должны использовать, скажем, вы использовали filename как поле в своей схеме для хранения имени файла изображения, $this->object->setFilename($filename); до parent::doSave($con);

...