2011-09-27 36 views
0

我想用Symfony 1.4中的一個動作創建200多個對象的縮略圖。問題在於保存表單時發生了thmbnail生成。Symfony 1.4用一個動作保存所有項目的起源

class AuthorForm extends BaseAuthorForm 
{ 
    public function configure() 
    { 
    /* some configs */ 
    } 

    public function save($con = null) 
    {  
    /* create thmbnail from original picture */ 
    } 

} 

我如何寫一個(批)行動,能夠將它們全部保存一次,而不是將每個項目在後臺和保存?

請注意,那只是$ author-> save();當然是行不通的。

謝謝!

+0

創建表單,將對象綁定到表單然後保存表單不起作用? – greg0ire

回答

0

您必須獲取對象,循環遍歷它們,創建窗體並保存。如下所示。

$authors = Doctrine_Core::getTable('Author')->findAll(); 
foreach($authors as $author){ 
    $form = new AuthorForm($author); 
    $form->save(); 
} 

如果您在託管計劃(而不是您的開發計算機)上運行它,您可能會遇到內存問題。獲取縮略圖的更好方法是使用像sfImageTransformExtraPlugin(http://www.symfony-project.org/plugins/sfImageTransformExtraPlugin)這樣的插件,在您需要時生成緩存縮略圖。你甚至不需要經歷生成縮略圖的麻煩。而且還可以很容易地爲同一張照片製作多個縮略圖版本。

如果您仍然需要使用這種方式,請在循環過程中執行一些未設置的操作,如下所示。

$authors = Doctrine_Core::getTable('Author')->findAll(); 
foreach($authors as $author){ 
    $form = new AuthorForm($author); 
    $form->save(); 
    unset($form, $author); 
} 
相關問題