当前位置: 首页 > 面试题库 >

JOINed表中的条件显示错误CakePHP

宦兴朝
2023-03-14
问题内容

我有两个表employee_personals,用于存储该员工的所有个人记录,并telephone_bills存储每个月支付给特定员工的电话费。现在employeePersonalsController.php我有一个名为的函数api_show_employees(),类似于以下内容:

function api_show_employees() {
      //$this->autoRender = false;
      //Configure::write("debug",0);

      $office_id = '';
      $cond = '';

      if(isset($_GET['office_id']) && trim($_GET['office_id']) != '') {
        $office_id = $_GET['office_id'];
        $cond['EmployeePersonal.office_id'] = $office_id;
      }


      if(isset($_GET['telephoneBillTo']) && isset($_GET['telephoneBillFrom']) ) {
        if($_GET['telephoneBillTo'] != '' && $_GET['telephoneBillFrom'] != '') {
          $cond['TelephoneBill.bill_from'] = $_GET['telephoneBillFrom'];
          $cond['TelephoneBill.bill_to'] = $_GET['telephoneBillTo'];
        }
      }


      $order = 'EmployeePersonal.name';
     // $employee = $this->EmployeePersonal->find('all');
      $employee = $this->EmployeePersonal->find('all',array('order' => $order,'conditions'=>$cond));
      //return json_encode($employee);
    }

此功能基本上可以找到在给定期间内支付账单的所有员工。但是我遇到一个错误

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'TelephoneBill.bill_from' in 'where clause'

型号EmployeePersonal.php::

var $hasMany = array(
  'TelephoneBill' => array(
         'className' => 'TelephoneBill',

     )
);

TelephoneBill.php

public $name = 'TelephoneBill';
var $hasMany = array('EmployeePersonal');

注意:如果我跳过bill_frombill_to条件,我将得到TelephoneBillarray的结果!


问题答案:

详细信息/注释:

1)看起来您正在使用recursive。不要那样做改用Containable

2)您不能根据条件限制父模型包含的数据/包含递归的表中的数据- **而是使用Joins

2b)或者,您可以从另一个方向查询,并查询TelephoneBill条件,然后包含EmployeePersonal



 类似资料:
  • 下面是运行服务器时的完整错误信息 请帮我解决这个问题,提前谢谢

  • 我在pygame中有以下问题。我使用,但当我尝试调用 它说:

  • 我使用的是JDK1.6(由于依赖关系),为了从xsd生成类,我添加了maven-jaxb2插件,如pom中所示。xml。 但日食(开普勒)抱怨如下。 分析命令行[[-Xsimplify,-spoint,D:\test\workspace\sample\target\generated sources\xjc\META-INF\sun jaxb.epoint]]时出错(org.jvnet.jaxb2

  • 下面是我的 我不会用这个名字在我的项目中的任何地方使用这个文件!!不过,在我的项目中还有许多其他的png文件。

  • 有一张Zend登记表。输入用户名、电子邮件、密码和确认密码。电子邮件验证程序如下所示: 有4个验证器:必需类型、电子邮件格式以及数据库中是否有人具有以下电子邮件。错误消息如下:-需要电子邮件-电子邮件地址格式无效-电子邮件地址已存在 尝试使用ajax捕获错误消息和输出时出现问题。在具有以下功能的RegisterController中: 和jQuery文件: 在控制台我得到了这样的东西https:/