【问题标题】:Cakephp bug : in paginator joins generated queryCakephp 错误:在分页器中加入生成的查询
【发布时间】:2014-05-30 20:52:34
【问题描述】:

当下面的代码在连接查询中生成带有单引号的查询时

$this->Paginator->settings = array(
            'joins' => array(
                array(
                  'table' => 'businesses_categories',
                  'alias' => 'BusinessesCategory',
                  'type' => 'LEFT',
                  'conditions' => array('Business.id' => 'BusinessesCategory`.`business_id'),
                ),
                array(
                  'table' => 'categories',
                  'alias' => 'Category',
                  'type' => 'LEFT',
                  'conditions' => array('BusinessesCategory.category_id' => 'Category.id'),
              ),
            ),
            'conditions' => array(
                'Category.id' => 24),
            'limit' => 10
        );

        $businesses = $this->Paginator->paginate('Business');

我添加了由上述分页器查询生成的查询。查询工作正常,当我使用 ON (Business.id = BusinessesCategory.business_id) 而不是 ON (Business.id = 'BusinessesCategory.business_id') 时

我该如何解决这个问题。所以,它不包括值的单引号

SELECT `Business`.`id`,
       `Business`.`state`,
       `Business`.`slug`,
       `Business`.`city`,
       `Business`.`suburb`,
       `Business`.`user_id`,
       `Business`.`business_name`,
       `Business`.`business_address`,
       `Business`.`business_postal`,
       `Business`.`business_postal_id`,
       `Business`.`business_phone`,
       `Business`.`business_phone1`,
       `Business`.`business_phone2`,
       `Business`.`business_email`,
       `Business`.`business_website`,
       `Business`.`business_details`,
       `Business`.`business_openinghours`,
       `Business`.`business_service`,
       `Business`.`business_addtionalinfo`,
       `Business`.`business_lat`,
       `Business`.`business_lng`,
       `Business`.`identity`,
       `Business`.`status`
FROM `yuldicom`.`businesses` AS `Business`
LEFT JOIN `yuldicom`.`businesses_categories` AS `BusinessesCategory` ON (`Business`.`id` = 'BusinessesCategory`.`business_id')
LEFT JOIN `yuldicom`.`categories` AS `Category` ON (`BusinessesCategory`.`category_id` = 'Category.id')
WHERE `Category`.`id` = 24 LIMIT 10

【问题讨论】:

    标签: php mysql sql cakephp pagination


    【解决方案1】:

    给你:--

        $this->Paginator->settings = array(
            'joins' => array(
                array(
                  'table' => 'businesses_categories',
                  'alias' => 'BusinessesCategory',
                  'type' => 'LEFT',
                  'conditions' => array('Business.id=BusinessesCategory.business_id'),
                ),
                array(
                  'table' => 'categories',
                  'alias' => 'Category',
                  'type' => 'LEFT',
                  'conditions' => array('BusinessesCategory.category_id=Category.id'),
              ),
            ),
            'conditions' => array(
                'Category.id' => 24),
            'limit' => 10
        );
    
        $businesses = $this->Paginator->paginate('Business');
    

    【讨论】:

    • 我已经修好了,('BusinessesCategory.category_id=Category.id')
    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2018-12-05
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多