【问题标题】:cakephp 1.3 : how to omit virtual fields from a find querycakephp 1.3:如何从查找查询中省略虚拟字段
【发布时间】:2013-06-13 10:52:54
【问题描述】:

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

非常感谢。

【问题讨论】:

    标签: mysql cakephp find cakephp-1.3


    【解决方案1】:

    您只能在运行时定义虚拟文件。这是我通常做的。

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

    但您也可以限制查找字段

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

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

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

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

    【讨论】:

    • 如果您需要临时移除 JOINED (hasMany, belongsTo, habtm,...) 模型上的虚拟字段,该怎么办?
    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 2019-12-12
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多