2012-09-25 42 views
0

这是我的问题:我试图在symfony中编写自定义验证程序。php symfony 1.4自定义验证程序错误

用法:

$this->setValidator('path', new sfValidatorFile(array(

    'required' => false, 
    'path'  => sfConfig::get('sf_upload_dir'), 
    'mime_types' => 'web_images', 
    'validated_file_class' => 'sfImageTransform'))); 
} 

验证:

<?php class sfImageTransform extends sfValidatedFile{ 

    public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777) { 


    $saved = parent::save($file, $fileMode, $create, $dirMode); 

     $img = new sfImage(sfConfig::get('sf_upload_dir').'/'.$saved, 'image/jpeg'); 
     $img->resize(500,400); 
     $img->save(); 

     return $saved; 
    } 
} ?> 

我得到这个错误:Fatal error: Class 'sfImageTransform' not found in /http/htdocs/pizza_propel/lib/vendor/symfony/lib/validator/sfValidatorFile.class.php on line 167

这里的,那将让我谋杀第一Sensio公司实验室的员工我的一部分我会遇到: 每当我从验证器文件中删除<?php ?>括号时,我在我的兄弟中得到这个class sfImageTransform extends sfValidatedFile{ public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777) { // let the parent class save the file and do what it normally does $saved = parent::save($file, $fileMode, $create, $dirMode); //echo $saved;die; $img = new sfImage(sfConfig::get('sf_upload_dir').'/'.$saved, 'image/jpeg'); $img->resize(500,400); $img->save(); //$saved->resize(1000,null); // //$saved->resize(1000,null)->overlay(new sfImage('logo.png'), 'bottom-right'); return $saved; } } Fatal error: Class 'sfImageTransform' not found in /http/htdocs/pizza_propel/lib/vendor/symfony/lib/validator/sfValidatorFile.class.php on line 167 wser窗口(如预期的那样),但是在将它们放回并刷新之后,它会执行一次,做它应该做的事情,并且在下次尝试时再次执行相同的事情。认真......这是怎么回事?我在这里咆哮了一个多小时,而我即将在75英里范围内粉碎一切。有人以前处理过这个问题吗?

+0

你的班级在哪里?在lib目录中?你如何命名该文件? –

+0

感谢您的评论,但我刚解决它: - / – Kuro

回答

0

所以我再次回答我自己的问题。我真的应该停止打扰问。

看来,由于一个愚蠢的愚蠢的巧合,验证器类文件的名称与其他文件或类似的文件发生冲突。重命名验证器类文件解决了问题。