Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] bind formularza - $taintedFiles ?
Forum PHP.pl > Forum > PHP > Frameworki
karolski
Mam problem z osadzonym formularzem, oto klasa formularza:
  1. class BackendEmbedImageForm extends ImageForm
  2. {
  3. public function configure()
  4. {
  5.  
  6. unset($this['product_id'], $this['ord'], $this['name']);
  7.  
  8. $this->widgetSchema['image'] = new sfWidgetFormInputFileEditable(array(
  9. 'file_src' => sfConfig::get('sf_upload_dir') . '/foto/m' .
  10. $this->getObject()->getImage(),
  11. 'is_image' => true,
  12. 'edit_mode' => !$this->isNew(),
  13. 'template' => '%file% %input%',
  14. 'label' => 'Zdjęcie:'
  15. ));
  16.  
  17. $this->validatorSchema['image'] = new sfValidatorFile(array(
  18. 'path' => sfConfig::get('sf_upload_dir') . '/foto/',
  19. 'required' => false,
  20. 'mime_types' => 'web_images'
  21. ));
  22.  
  23. }
  24. }

W klasie formualrza modelu, konfiguracja formualrza:
  1. $imageForm = new BackendEmbedImageForm();
  2. $this->embedForm('image1', $imageForm);
  3. $this->widgetSchema['image1']->setLabel('Dodaj zdjęcie #1');


teraz w funkcji bind chce sprawdzic czy plik zostal wybrany:

  1. public function bind(array $taintedValues = null, array $taintedFiles = null)
  2. {
  3.  
  4.  
  5. if (WARUNEK)
  6. {
  7. $this->embeddedForms['image1']->getObject()->setProduct($this->getObject());
  8. } else {
  9. unset($this->embeddedForms['image1'], $taintedValues['image1']);
  10. $this->validatorSchema['image1'] = new sfValidatorPass();
  11. }
  12.  
  13. ...

probowalem sprawdzac w nastpeujacy sposob $taintedFiles[image1][image] i czy ta zmienna jest pusta, ale nie dziala, jakis pomysl?
l3l0
Witam,

Metoda bind to chyba nie najlepsze miejsce do tego.
Polecam dobrego manuala o formach:
http://www.symfony-project.org/more-with-s...-Advanced-Forms
Napewno po przeczytaniu sobie poradzisz (są tam podobne przykłady)

Pozdrawiam
karolski
znam to, problem w tym, ze potrzbuje upload obrazka ale bez zadnego opisu i teraz jezlei nie wybrlame obrazka to on dodaje mi pusty obrazek, zapewne cos tutaj jest nie tak:
  1. public function saveEmbeddedForms($con = null, $forms = null)
  2. {
  3. if (null === $forms)
  4. {
  5. $photos = $this->getValue('newPhotos');
  6. $forms = $this->embeddedForms;
  7. foreach ($this->embeddedForms['newPhotos'] as $name => $form)
  8. {
  9. if (!isset($photos[$name]))
  10. {
  11. unset($forms['newPhotos'][$name]);
  12. }
  13. }
  14. }
  15.  
  16. return parent::saveEmbeddedForms($con, $forms);
  17. }


wygenerowana nazwa input typu file wyglada tak: product[newPhotos][0][image] a w powyzszym kodzie unset jest dla 2 wymiarowej tablicy, moze to jest problem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.