2012-09-25 41 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

所以我再次回答我自己的問題。我真的應該停止打擾問。

看來,由於一個愚蠢的愚蠢的巧合,驗證器類文件的名稱與其他文件或類似的文件發生衝突。重命名驗證器類文件解決了問題。