您一次只能將一個參數傳遞給setOption()
。或者您可以使用setOptions()
一次覆蓋所有選項。
你有sfWidgetFormInputFileEditable
在一個genrated的基本形式?我不這麼認爲。 請不要手動編輯生成的基類。
請在文檔中至少閱讀this chapter。
注意:爲什麼公司ID是必需的?
我覺得應該是更好地把它變成形式是這樣的:
// EditSlideForm.class.php
public function configure()
{
//...
// use this if the file is optional
$this->setWidget('file_name', new sfWidgetFormInputFileEditable(array(
'file_src' => $this->getObject()->getPublicFileLocation(),
'is_image' => true,
'with_delete' => (boolean) $this->getObject()->getFile(),
'edit_mode' => !$this->isNew() && $this->getObject()->getFileName(),
)));
$this->setValidator('file_name', new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => $this->getObject()->getFileDir(),
'required' => false,
)));
$this->setValidator('file_name_delete', new sfValidatorBoolean());
// use this if the file is required
$this->setWidget('file_name', new sfWidgetFormInputFileEditable(array(
'file_src' => $this->getObject()->getPublicFileLocation(),
'is_image' => true,
'with_delete' => false,
'edit_mode' => !$this->isNew() && $this->getObject()->getFileName(),
)));
$this->setValidator('file_name', new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => $this->getObject()->getFileDir(),
)));
//...
}
這是怎麼了我usally做到這一點。您應該將getPublicFileLocation()
和getFileDir()
添加到模型中。例如:
static public function getFileDir()
{
return sfConfig::get('sf_upload_dir') . '/slide-file';
}
public function getPublicFileLocation()
{
return str_replace(sfConfig::get('sf_web_dir'), '', self::getFileDir()) . '/' . $this->getFileName();
}
來源
2013-01-05 09:53:33
1ed