3
我的一些數據庫表中有幾個字段,我的CakePHP模型從不需要檢索。有什麼方法可以設置默認的一組字段以在模型級別獲取?例如,我從第三方設計的數據庫檢索一些數據,每個表有50個字段,我使用5.CakePHP:限制與模型相關的字段
我知道我可以在find()查詢時和任何時候設置字段限制模型之間的關聯,但我想知道是否有模型級的方法。
我的一些數據庫表中有幾個字段,我的CakePHP模型從不需要檢索。有什麼方法可以設置默認的一組字段以在模型級別獲取?例如,我從第三方設計的數據庫檢索一些數據,每個表有50個字段,我使用5.CakePHP:限制與模型相關的字段
我知道我可以在find()查詢時和任何時候設置字段限制模型之間的關聯,但我想知道是否有模型級的方法。
CakePHP不提供您在模型級別開箱即用的描述。也就是說存在是每個find()
正如你提到的,你可以在通過設置fields
屬性關聯級別指定此使用的defaultFields
沒有Model屬性。但是,這隻有在您通過其中一種關係檢索模型時纔有用。
最後,您將在find()
中設置此項。你可以儘量減少通過增加一個屬性到模型中,像這樣重複自己:
var $defaultFields = array('Model.field1', 'Model.field2', ...);
然後在您的find()
:
$this->Model->find('fields' => $this->Model->defaultFields, ...);
這有明顯的侷限性,但至少提供了一些封裝,因此靈活性。
注意:更有創意的方法可以使用beforeFind();
。在這種情況下,您不需要調整每個find()
。但是,您的里程可能會因您的使用情況而異。
這就是我算了一下,謝謝您的好意。我想我會使用$ default字段的想法 –
沒問題。如果你有* simple *'find()',使用'beforeFind()'回調可能是一個更快的方法。根據我的經驗,這些回調可能會在不直觀的時間點燃。 –