Adam W.

Adam W. senior php
developer, Symfony

Temat: form, save

hello,
a jednak coś napiszę:)

opcja I.
$item = $this->form->updateObject();
$item->tytul = $tytul;

if($this->form->getObject()->isNew())
{
$item->nazwa = $nazwa_pliku;
$item->sciezka = 'image/zdjecia';
$item->iduser = $this->getUser()->getId();
}
$item->save();


opcja II.

$this->form->nazwa = $nazwa_pliku;
$this->form->nazwa = 'image/zdjecia';
$this->form->iduser = $this->getUser()->getId()
$this->form->save();


opcja I działa, opcja II nie działa bo nazwa to jest sfWidgetInputFile i przekazuje do tego obiektu pewnie tablice z danymi pliku, a wtedy doctrine wywala błąd walidacji, że typ zły.
chodzi o to, że chcę narzucić nazwę pliku do zapisu w bazie.
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: form, save

Adam W.:
hello,
a jednak coś napiszę:)

opcja I.
$item = $this->form->updateObject();
$item->tytul = $tytul;
if($this->form->getObject()->isNew())
{
$item->nazwa = $nazwa_pliku;
$item->sciezka = 'image/zdjecia'; $item->iduser = $this->getUser()->getId();
}
$item->save();


opcja II.

$this->form->nazwa = $nazwa_pliku;
$this->form->nazwa = 'image/zdjecia';
$this->form->iduser = $this->getUser()->getId()
$this->form->save();


opcja I działa, opcja II nie działa bo nazwa to jest sfWidgetInputFile i przekazuje do tego obiektu pewnie tablice z danymi pliku, a wtedy doctrine wywala błąd walidacji, że typ zły.
chodzi o to, że chcę narzucić nazwę pliku do zapisu w bazie.


Spojz, to jest metoda w klasie sfFormPropel:


protected function saveFile($field, $filename = null, sfValidatedFile $file = null)
{
if (!$this->validatorSchema[$field] instanceof sfValidatorFile)
{
throw new LogicException(sprintf('You cannot save the current file for field "%s" as the field is not a file.', $field));
}

if (is_null($file))
{
$file = $this->getValue($field);
}

$column = call_user_func(array(constant(get_class($this->object).'::PEER'), 'translateFieldName'), $field, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME);
$method = sprintf('generate%sFilename', $column);

if (!is_null($filename))
{
return $file->save($filename);
}
else if (method_exists($this->object, $method))
{
return $file->save($this->object->$method($file));
}
else
{
return $file->save();
}
}


Najbardziej powinna cie zainteresowac instrukcja:

$method = sprintf('generate%sFilename', $column);


Co prawda jeszcze z niej nie kozystalem, ale trafilem na nia przypadkiem gdy patchowalem sfWidgetFormInputFileEditable
Adam W.

Adam W. senior php
developer, Symfony

Temat: form, save

Roman Piekarski:
Najbardziej powinna cie zainteresowac instrukcja:

$method = sprintf('generate%sFilename', $column);


Co prawda jeszcze z niej nie kozystalem, ale trafilem na nia przypadkiem gdy patchowalem sfWidgetFormInputFileEditable

korzystam z Doctrine.
wiem, że jest metoda do generowania nazw pliku, już sobie ją nadpisałem. ale ja muszę do nazwy pliku przemycić kilka danych - robię to w akcji.
hmm, chyba, żeby jakoś to przemycić do formularza w inny sposób podczas inicjowania forma.
posiedzę nad tym jeszcze, ale jakby ktoś się z tym już męczył to wspomóżcie:)



Wyślij zaproszenie do