在cakephp中连接表时出错

时间:2015-02-02 11:45:48

标签: cakephp cakephp-2.0 cakephp-1.3 cakephp-2.1 cakephp-2.3

控制器

public function index(){ 
  $this->Store->unbindModel(
        array('belongsTo' => array('Employee')), true
    );

$options=array(             
        'joins' =>
                  array(
                    array(
                        'table' => 'Employee',
                        'alias' => 'Employee',
                        'foreignKey' => true,
                        'conditions'=> array('Employee.employee_store = Store.store_name')
                    )    
));
  $coupons = $this->Store->find('all', $options);
}

模型

类商店扩展AppModel { var $ useTable =' store&#39 ;; }

Sql:

SELECT `Store`.`id`,
       `Store`.`store_name`,
       `Store`.`store_address`,
       `Store`.`store_phone`,
       `Store`.`store_email`,
       `Store`.`store_website`,
       `Store`.`date_enter`,
       `Store`.`store_shortcode`
FROM `billing`.`store` AS `Store`
JOIN `billing`.`Employee` AS `Employee` ON (`Employee`.`employee_store` = `Store`.`store_name`)
WHERE 1 = 1

我需要显示Employee和Store表列。 (employee_name,employee_mail等来自员工表,Store_name,来自商店表的store_add)

2 个答案:

答案 0 :(得分:1)

$options = array(
            array(
                    'table' => 'Employee',
                    'alias' => 'Employee',
                    'foreignKey' => true,
                    'conditions'=> array('Employee.employee_store = Store.store_name')
                    )    
          );

$coupons = $this->Store->find('all',array(
   "fields"=>array("Employee.*","Store.*"),
   "joins"=>$options
));

答案 1 :(得分:0)

$this->Store->Behaviors->load('Containable');
$options = array(
   'contain' => array(
      'Employee' => array(
          'conditions' => array(
              'Employee.employee_store' => 'Store.store_name'
          )
      )
   )
);
$coupons = $this->Store->find('all', $options);