我是CakePHP的新手,虽然我真的很喜欢能够轻松选择模型及其所有相关模型,但我想知道是否有更简单的方法来选择所有字段从每个模型。
例如,我不是在抓取模型数据时自动选择所有字段,而不必每次都费力地指定字段=>数组(...),有什么方法可以指定哪些字段是默认选择?
答案 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定义中,因为除了最简单的查找之外,我使用它。