Cake Php paginator问题

Kar*_*ran 8 php pagination cakephp paginator cakephp-2.0

我正面临一个问题.我已经编写了分页代码.一切都按预期工作,但只有条件不起作用(只有特定条件)这是我的分页代码.

//declaration 
public $paginate = array(
        'limit' => 50,
        'paramType' => 'querystring'
    ); 
//use in action
$this->paginate['ApiLog'] = array('limit' => 50, 'order' => 'ApiLog.id DESC', 'paramType' => 'querystring');

$this->paginate['ApiLog']['conditions'] = array('ApiLog.log_type' => 2);
$this->paginate['ApiLog']['joins'] = array(               
            array(
                'table' => 'users',
                'alias' => 'User',
                'type' => 'LEFT',
                'conditions' => array('User.id = ApiLog.user_id')
            )                
        );
$this->Paginator->settings = $this->paginate['ApiLog'];
$apilogs = $this->Paginator->paginate('ApiLog');
Run Code Online (Sandbox Code Playgroud)

此代码在开发环境中工作并且返回类型为2的日志,但在生产中它只返回类型为1的日志.我花了一整天时间来找出问题.如果我确实添加任何其他条件conditions array确实生效但不生效log_type.我打印查询日志,where clause总是显示log_type = '1' 我已经清除了缓存.任何帮助表示感谢,谢谢.

Kar*_*ran 2

我已经解决了问题,这个问题是由于data type声明到数据库中造成的。在生产中它是tinyint(1)并且在开发中它给出了int(1)。它在两种环境中都在数据库中保存了正确的值,但条件tinyint(1)是仅使用 0 和 1,而不使用 2。

我不明白这背后的原因。