cakephp 1.3:如何从查找查询中省略虚拟字段

时间:2013-06-13 10:52:55

标签: mysql cakephp find cakephp-1.3

我正在尝试将Model-> find查询的输出转换为SQL,以输入完全独立于cakePHP系统使用的当前MySQL数据库的数据库。我的问题是我在模型中有几个虚拟字段,在执行Model->查找数据时不可避免地返回。显然,如果我要将数据转换为SQL,我需要从查找中找到并删除这些虚拟字段,这将用作与原始MySQL数据库相同的数据库的输入。是否有一种省略虚拟字段的简单方法?任何可以在高于1.3的版本中完成此操作的方式也会非常有用。

非常感谢。

1 个答案:

答案 0 :(得分:2)

您只能在运行时定义虚拟fiels。这就是我通常做的事情。

$this->virtualFields['x'] = 'y';
// find query

但您也可以限制查找字段

'fields'=>数组('没有虚拟字段的所有字段')

这也会跳过您的虚拟字段。 通常,您不希望详细定义所有字段。

您还可以取消设置find()调用的所有虚拟字段:

$tmp = $this->virtualFields;
$this->virtualFields = array();
// find query
$this->virtualFields = $tmp;