Zend Form:调用未定义的方法 Zend\InputFilter\InputFilter::getFilterChain()
Zend Form : Call to undefined method Zend\InputFilter\InputFilter::getFilterChain()
我正在尝试使用 Zend Form 上传图片。因为我们需要它来移动图像,所以我想添加一个过滤器来完成这项工作。但是我不能使用 getInputFilterChain(),我一直有这个致命错误:Call to undefined method Zend\InputFilter\InputFilter::getFilterChain()
。我在这里错过了什么?
我能够在 $prg 数组中获取文件信息。而当我查看 https://framework.zend.com/manual/2.4/en/modules/zend.mvc.plugins.html 时,这个方法应该存在于此,不是吗?
如果我在我的 Form.php 文件中使用它,我会得到同样的错误。
提前感谢您的宝贵时间!
我的控制器操作:
public function signinAction()
{
$this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
$form = new SignupForm($this->em);
$form->getInputFilter()->getFilterChain()->attach(
new Zend\Filter\File\RenameUpload(array(
'target' => './data/tmpuploads/file',
'randomize' => true,
))
);
$model = new ViewModel(array("form" => $form));
$url = $this->url()->fromRoute("signin");
$prg = $this->fileprg($form, $url, true);
if($prg instanceof \Zend\Http\PhpEnvironment\Response){
return $prg;
}
else if($prg === false){
return $model;
}
//other stuff
...
}
您需要先从 InputFilter
获取 Input
实例,然后您可以从输入获取过滤器链:
$inputName = 'file'; // name of the input you want to work with
$input = $form->getInputFilter()->get($inputName);
$filterChain = $input->getFilterChain();
我正在尝试使用 Zend Form 上传图片。因为我们需要它来移动图像,所以我想添加一个过滤器来完成这项工作。但是我不能使用 getInputFilterChain(),我一直有这个致命错误:Call to undefined method Zend\InputFilter\InputFilter::getFilterChain()
。我在这里错过了什么?
我能够在 $prg 数组中获取文件信息。而当我查看 https://framework.zend.com/manual/2.4/en/modules/zend.mvc.plugins.html 时,这个方法应该存在于此,不是吗?
如果我在我的 Form.php 文件中使用它,我会得到同样的错误。
提前感谢您的宝贵时间!
我的控制器操作:
public function signinAction()
{
$this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
$form = new SignupForm($this->em);
$form->getInputFilter()->getFilterChain()->attach(
new Zend\Filter\File\RenameUpload(array(
'target' => './data/tmpuploads/file',
'randomize' => true,
))
);
$model = new ViewModel(array("form" => $form));
$url = $this->url()->fromRoute("signin");
$prg = $this->fileprg($form, $url, true);
if($prg instanceof \Zend\Http\PhpEnvironment\Response){
return $prg;
}
else if($prg === false){
return $model;
}
//other stuff
...
}
您需要先从 InputFilter
获取 Input
实例,然后您可以从输入获取过滤器链:
$inputName = 'file'; // name of the input you want to work with
$input = $form->getInputFilter()->get($inputName);
$filterChain = $input->getFilterChain();