CakePHP默认模型字段

时间:2011-08-14 19:34:37

标签: cakephp

我是CakePHP的新手,虽然我真的很喜欢能够轻松选择模型及其所有相关模型,但我想知道是否有更简单的方法来选择所有字段从每个模型。

例如,我不是在抓取模型数据时自动选择所有字段,而不必每次都费力地指定字段=>数组(...),有什么方法可以指定哪些字段是默认选择?

3 个答案:

答案 0 :(得分:1)

您还可以在模型中创建自己的find方法:

function findSelected($options = array()) {
 $options['fields'] = array('id','name');
 return $this->find('all', $options);
}
控制器中的

$this->Model->findSelected(array('order' => 'id ASC'));

甚至可以更好地在findSelected方法中合并options数组,然后您甚至可以动态提供其他字段。

答案 1 :(得分:0)

是的,如果设置了'fields'键,你可以在查看该模型之前检查,如果没有,你可以在那里设置它。但我想说,除了使调试看起来更整洁之外,这样做几乎没有性能提升。如果您必须对模型进行更改,请记住这一点。

答案 2 :(得分:0)

您想要查看可包含行为 - http://book.cakephp.org/view/1323/Containable

有很好的文档记录,但是要给你一个简短的概述

$this->Article->find('all', array(
  'contain' => array(
    'Author.name',
    'Category' => array(
      'name',
      'icon'
    )
  )
));

会返回您的所有文章数据,以及其他三个字段。

我已将Containable添加到我的app_model定义中,因为除了最简单的查找之外,我使用它。