3

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

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

4

1 回答 1

3

CakePHP 不提供开箱即用的模型级别描述的内容。也就是说,没有一个 Model 属性defaultFields被用于每个find()

fields正如您所指出的,您可以通过设置属性在关联级别指定它。但是,这仅在您通过其中一种关系检索模型时才有效。

最后,您将在find(). 您可以通过向模型添加属性来最小化重复自己,如下所示:

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

然后在你的find()

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

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

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

于 2011-08-30T13:59:10.280 回答