Използвам Symfony 1.4.4 и Doctrine и трябва да кача изображение на сървъра.
Правил съм го стотици пъти без никакъв проблем, но този път се случва нещо странно: вместо името на файла да се съхранява в базата данни, намирам низа „Масив“.
Ето какво правя:
В моя формуляр:
$this->useFields(array('filename'));
$this->embedI18n(sfConfig::get('app_cultures'));
$this->widgetSchema['filename'] = new sfWidgetFormInputFileEditable(array(
'file_src' => '/uploads/flash/'.$this->getObject()->getFilename(),
'is_image' => true,
'edit_mode' => !$this->isNew(),
'template' => '<div id="">%file%</div><div id=""><h3 class="">change picture</h3>%input%</div>',
));
$this->setValidator['filename'] = new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/flash',
));
В моето действие:
public function executeIndex( sfWebRequest $request )
{
$this->flashContents = $this->page->getFlashContents();
$flash = new FlashContent();
$this->flashForm = new FlashContentForm($flash);
$this->processFlashContentForm($request, $this->flashForm);
}
protected function processFlashContentForm($request, $form)
{
if ( $form->isSubmitted( $request ) ) {
$form->bind( $request->getParameter( $form->getName() ), $request->getFiles( $form->getName() ) );
if ( $form->isValid() ) {
$form->save();
$this->getUser()->setFlash( 'notice', $form->isNew() ? 'Added.' : 'Updated.' );
$this->redirect( '@home' );
}
}
}
Преди да обвържа моите параметри, всичко е наред, $request->getFiles($form->getName())
връща моите файлове. Но след това $form->getValue('filename')
връща низа "Масив".
Случвало ли се е на някой от вас или виждате нещо нередно в моя код?
Редактиране: Добавих факта, че вграждам друг формуляр, което може да е проблемът (вижте кода на формуляра по-горе).