Mee*_*att 4 cakephp cakephp-model
我的问题是当我从用户表中获取用户数据时,用户表的所有字段都从用户表中获取..但我不想包含密码和电子邮件地址,所以有没有办法只获取除密码和电子邮件地址?
问候.
正如juhana所提到的,您不需要使用查找调用返回的所有字段.目前尚不清楚您要解决的实际问题是什么,在未来的问题中澄清这些细节符合您的利益.
对于直接在您的用户模型上查询,您可以使用以下逻辑:
public function beforeFind($queryData) {
if (empty($queryData['fields'])) {
$schema = $this->schema();
unset($schema['password']);
unset($schema['email']);
foreach (array_keys($schema) as $field) {
$queryData['fields'][] = $this->alias . '.' . $field;
}
return $queryData;
}
return parent::beforeFind($queryData);
}
Run Code Online (Sandbox Code Playgroud)
对于查询其他模型的查询,这不会做任何事情
$results = $PostModel->find('all', array(
'contain' => array('User')
));
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,将返回所有用户字段.对于这样的用途,最好明确定义字段列表,而不是依赖任何自动魔术:
$results = $PostModel->find('all', array(
'contain' => array('User')
'fields' => array('Post.*', 'User.name')
));
Run Code Online (Sandbox Code Playgroud)