有没有办法写一个CakePHP查询来返回除find()
之外的所有字段(列)?或者我是否需要使用fields
参数并实际列出除排除字段外的所有字段?
例如,如果我有一个数据库表(模型),Company,包含以下字段:
id
name
street
city
state
zip
phone
通常,$this->Company->find('all')
会返回所有字段。我想从结果集中排除电话字段。
答案 0 :(得分:7)
$fields = array_keys($this->Company->getColumnTypes());
$key = array_search('phone', $fields);
unset($fields[$key]);
$this->Company->find('all', array('fields' => $fields));
有关详细信息,请查看http://book.cakephp.org/2.0/en/models/additional-methods-and-properties.html#model-getcolumntypes
答案 1 :(得分:1)
我可以想到几种方法来做到这一点
写出要包含在fields参数中的所有字段。如评论中所述,您可以使用$ this-> Company->架构以编程方式获取所有字段,而不是将其写出来。
获取数据后取消设置您不想要的字段。您也可以在模型的afterFind函数中执行此操作。