我有一系列運行在generator.yml上的模塊。在其中一些我希望隱藏記錄默認狀態:關閉(作爲一系列狀態的最後一個)。當然,如果用戶篩選CLOSED我想顯示這些記錄。如何將查詢應用於模型如果字段未經過濾
我認爲在特定的table_method中應用andWhere('status_id =?',Status :: CLOSED)會有意義,但是如何從模型中訪問模塊的過濾器?
有沒有更好的方法來做到這一點?
我有一系列運行在generator.yml上的模塊。在其中一些我希望隱藏記錄默認狀態:關閉(作爲一系列狀態的最後一個)。當然,如果用戶篩選CLOSED我想顯示這些記錄。如何將查詢應用於模型如果字段未經過濾
我認爲在特定的table_method中應用andWhere('status_id =?',Status :: CLOSED)會有意義,但是如何從模型中訪問模塊的過濾器?
有沒有更好的方法來做到這一點?
我想你可以創建一個新的領域,例如「showClosedStatus」(你就需要添加控件和驗證的形式) 然後在generatorconfiguration與
公共函數getFilterDefaults(){
返回陣列(「showClosedStatus」 =>「假」添加getFilterDefaults() );
}
然後添加 功能addShowClosedStatusColumnQuery(Doctrine_Query $ Q,$字段,$值){
如果($值==假){
$ Q-> andWhere( '狀態!=' 封閉)
}
我不是100%確定你想要做什麼?是否默認其中一個過濾器的狀態?
如果是這樣,那很容易完成。應用// //模塊LIB/GeneratorConfiguration.php添加一個方法來調用的類「getFilterDefaults」:
class modulenameGeneratorConfiguration extends BaseModulenameGeneratorConfiguration
{
public function getFilterDefaults() {
return array('status' => 'something');
}
}
你唯一的區別在於,它聽起來就像可以值的數組中的該字段上過濾題。從來沒有理由嘗試這一點,但我想可能會返回一組值來代替某些東西。
備選答案,基於來自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;
}
不,我需要申請查詢!=封閉的過濾器,除非選擇濾波器= CLOSED – jdog 2011-01-16 15:14:50