我的一些数据库表中有几个字段,我的CakePHP模型永远不需要检索。有没有办法在模型级别设置一组默认字段?例如,我从第三方设计的数据库中检索一些数据,每个表有50个字段,我使用5。
我知道我可以在find()查询时和模型之间的任何关联时设置字段限制,但我想知道是否存在模型级方法。
答案 0 :(得分:3)
CakePHP不提供您在模型级别开箱即用的描述。也就是说,defaultFields
find()
的模型属性
如您所述,您可以通过设置fields
属性在关联级别指定此项。但是,这只有在您跨这些关系之一检索模型时才有效。
最后,您将在find()
中进行设置。您可以通过向模型添加属性来最小化重复自己:
var $defaultFields = array('Model.field1', 'Model.field2', ...);
然后在find()
:
$this->Model->find('fields' => $this->Model->defaultFields, ...);
这有明显的局限性,但至少提供了一些封装,因此具有灵活性。
注意:更具侵略性的方法可以使用beforeFind();
。在这种情况下,您不需要每find()
调整一次。但您的里程可能会根据您的使用情况而有所不同。