2011-08-30 55 views
3

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

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

回答

3

CakePHP不提供您在模型级别开箱即用的描述。也就是说存在是每个find()

正如你提到的,你可以在通过设置fields属性关联级别指定此使用的defaultFields没有Model属性。但是,这只有在您通过其中一种关系检索模型时才有用。

最后,您将在find()中设置此项。你可以尽量减少通过增加一个属性到模型中,像这样重复自己:

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

然后在您的find()

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

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

注意:更有创意的方法可以使用beforeFind();。在这种情况下,您不需要调整每个find()。但是,您的里程可能会因您的使用情况而异。

+0

这就是我算了一下,谢谢您的好意。我想我会使用$ default字段的想法 –

+0

没问题。如果你有* simple *'find()',使用'beforeFind()'回调可能是一个更快的方法。根据我的经验,这些回调可能会在不直观的时间点燃。 –