2011-08-30 59 views
3

我的一些數據庫表中有幾個字段,我的CakePHP模型從不需要檢索。有什麼方法可以設置默認的一組字段以在模型級別獲取?例如,我從第三方設計的數據庫檢索一些數據,每個表有50個字段,我使用5.CakePHP:限制與模型相關的字段

我知道我可以在find()查詢時和任何時候設置字段限制模型之間的關聯,但我想知道是否有模型級的方法。

回答

3

CakePHP不提供您在模型級別開箱即用的描述。也就是說存在是每個find()

正如你提到的,你可以在通過設置fields屬性關聯級別指定此使用的defaultFields沒有Model屬性。但是,這隻有在您通過其中一種關係檢索模型時纔有用。

最後,您將在find()中設置此項。你可以儘量減少通過增加一個屬性到模型中,像這樣重複自己:

var $defaultFields = array('Model.field1', 'Model.field2', ...); 

然後在您的find()

$this->Model->find('fields' => $this->Model->defaultFields, ...); 

這有明顯的侷限性,但至少提供了一些封裝,因此靈活性。

注意:更有創意的方法可以使用beforeFind();。在這種情況下,您不需要調整每個find()。但是,您的里程可能會因您的使用情況而異。

+0

這就是我算了一下,謝謝您的好意。我想我會使用$ default字段的想法 –

+0

沒問題。如果你有* simple *'find()',使用'beforeFind()'回調可能是一個更快的方法。根據我的經驗,這些回調可能會在不直觀的時間點燃。 –