CakePHP:限制与模型关联的字段

时间:2011-08-30 13:47:46

标签: php cakephp cakephp-appmodel sql-limit

我的一些数据库表中有几个字段,我的CakePHP模型永远不需要检索。有没有办法在模型级别设置一组默认字段?例如,我从第三方设计的数据库中检索一些数据,每个表有50个字段,我使用5。

我知道我可以在find()查询时和模型之间的任何关联时设置字段限制,但我想知道是否存在模型级方法。

1 个答案:

答案 0 :(得分:3)

CakePHP不提供您在模型级别开箱即用的描述。也就是说,defaultFields

上没有使用find()的模型属性

如您所述,您可以通过设置fields属性在关联级别指定此项。但是,这只有在您跨这些关系之一检索模型时才有效。

最后,您将在find()中进行设置。您可以通过向模型添加属性来最小化重复自己:

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

然后在find()

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

这有明显的局限性,但至少提供了一些封装,因此具有灵活性。

注意:更具侵略性的方法可以使用beforeFind();。在这种情况下,您不需要每find()调整一次。但您的里程可能会根据您的使用情况而有所不同。