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

我的CakePHP模型不需要检索某些数据库表中的几个字段.有什么方法可以设置要在模型级别获取的默认字段集?例如,我从第三方设计的数据库中检索一些数据,该数据库每个表有50个字段,我使用5.

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

解决方法:

CakePHP并未提供您在模型级别描述的内容.也就是说,每个find()都没有defaultFields的Model属性.

如您所述,您可以通过设置fields属性在关联级别上指定它.但是,仅当您通过这些关系之一检索模型时,这才起作用.

最后,您将在find()中进行设置.您可以通过向模型中添加属性来最大程度地减少重复自己:

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

然后在您的find()中:

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

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

注意:更具侵入性的方法可以使用beforeFind();.在这种情况下,您无需调整每个find().但是您的里程可能会因使用情况而异.

上一篇:read()函数CakePHP中的条件


下一篇:php-如何在自定义404页面上设置页面标题?