2011-01-13 33 views
0

我有一系列運行在generator.yml上的模塊。在其中一些我希望隱藏記錄默認狀態:關閉(作爲一系列狀態的最後一個)。當然,如果用戶篩選CLOSED我想顯示這些記錄。如何將查詢應用於模型如果字段未經過濾

我認爲在特定的table_method中應用andWhere('status_id =?',Status :: CLOSED)會有意義,但是如何從模型中訪問模塊的過濾器?

有沒有更好的方法來做到這一點?

回答

0

我想你可以創建一個新的領域,例如「showClosedStatus」(你就需要添加控件和驗證的形式) 然後在generatorconfiguration與

公共函數getFilterDefaults(){
返回陣列(「showClosedStatus」 =>「假」添加getFilterDefaults() );
}

然後添加 功能addShowClosedStatusColumnQuery(Doctrine_Query $ Q,$字段,$值){
如果($值==假){
$ Q-> andWhere( '狀態!=' 封閉)
}

0

我不是100%確定你想要做什麼?是否默認其中一個過濾器的狀態?

如果是這樣,那很容易完成。應用// //模塊LIB/GeneratorConfiguration.php添加一個方法來調用的類「getFilterDefaults」:

class modulenameGeneratorConfiguration extends BaseModulenameGeneratorConfiguration 
{ 
    public function getFilterDefaults() { 
    return array('status' => 'something'); 
    } 

} 

你唯一的區別在於,它聽起來就像可以值的數組中的該字段上過濾題。從來沒有理由嘗試這一點,但我想可能會返回一組值來代替某些東西。

+0

不,我需要申請查詢!=封閉的過濾器,除非選擇濾波器= CLOSED – jdog 2011-01-16 15:14:50

0

備選答案,基於來自OP的評論。

如果要調整查詢是如何構建的某一領域,找到的lib /過濾/學說的相關過濾形式像這樣添加一個方法給它:

public function addStatusColumnQuery(Doctrine_Query $q, $field, $value) { 
    // do whatever you want here - ie: check $value, and add the query conditions you need to $q. 

    return $q; 
} 
+0

看起來非常接近我想要的,問題是,如果沒有選擇過濾器不調用此函數 - 但我仍然需要過濾。我可以看到的任何流程文檔? – jdog 2011-01-17 03:12:30

+0

我也發現這個http://www.symfony-project.org/tutorial/1_4/en/whats-new#chapter_a2fae23c9403b0e9ec99806fccf6b53e_sub_sfformfilterdoctrine但不清楚放置過濾器種子的位置。改變table_method給我帶來了同樣的問題 – jdog 2011-01-17 03:23:01

相關問題