使用 symfony 1.4 中的表单在 post 验证器中获取文件值
Get File Value in post validator using a form in symfony 1.4
我有一个表单,如果您 select 选择,您可以上传文件,我正在尝试使用 postValidator 在用户未上传文件时抛出错误文件并且还没有上传文件
在表格 Class 中,我有 postValidator
$this->validatorSchema->setPostValidator(
new sfValidatorCallback(array('callback' => array($this, 'checkFile'))));
public function checkFile($validator, $values){
$file = $this->getOption('file');
if($values['carta-compromiso'] && !$values['file'] && !$file){
throw new sfValidatorError($validator, 'Debe subir el archivo de carta de compromiso.');
}
return $values;
}
并且在操作中我将值 $file 传递给
$this->paso1_lleno = PostulacionTable::getInstance()->findOneByUsuarioId($this->getUser()->getGuardUser()->getId());
$this->form = new Paso1Form(array(), array('file' => $this->paso1_lleno->archivo_carta_compromiso));
我在 post 验证器中使用 $values['file'] 得到的值始终为空,即使我选择了一个文件。
您需要将文件作为第二个参数绑定到 bind()
方法:
$this->form->bind($request->getParameter('paso_1'), $request->getFiles('paso_1'));
我有一个表单,如果您 select 选择,您可以上传文件,我正在尝试使用 postValidator 在用户未上传文件时抛出错误文件并且还没有上传文件
在表格 Class 中,我有 postValidator
$this->validatorSchema->setPostValidator(
new sfValidatorCallback(array('callback' => array($this, 'checkFile'))));
public function checkFile($validator, $values){
$file = $this->getOption('file');
if($values['carta-compromiso'] && !$values['file'] && !$file){
throw new sfValidatorError($validator, 'Debe subir el archivo de carta de compromiso.');
}
return $values;
}
并且在操作中我将值 $file 传递给
$this->paso1_lleno = PostulacionTable::getInstance()->findOneByUsuarioId($this->getUser()->getGuardUser()->getId());
$this->form = new Paso1Form(array(), array('file' => $this->paso1_lleno->archivo_carta_compromiso));
我在 post 验证器中使用 $values['file'] 得到的值始终为空,即使我选择了一个文件。
您需要将文件作为第二个参数绑定到 bind()
方法:
$this->form->bind($request->getParameter('paso_1'), $request->getFiles('paso_1'));