Cake Php paginator问题

我正面临一个问题.我已经编写了分页代码.一切都按预期工作,但只有条件不起作用(只有特定条件)
这是我的分页代码.
//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');

此代码在开发环境和返回日志类型2上工作正常,但在生产中它只返回类型为1的日志.我花了一整天时间来找出问题.
如果我确实在条件数组中添加任何其他条件,该条件生效但不是log_type.
我打印查询日志,在where子句中它总是显示log_type =’1′
我也清除了缓存.
任何帮助表示感谢,谢谢.

如果您的代码在本地计算机上运行良好但在生产中不起作用,那么您必须清除tmp / cache / model和tmp / cahe / persistance中的所有文件.确保您已授予tmp文件夹的可写权限.

这意味着您必须在添加新字段,删除现有字段或在数据库架构中进行任何更改时更新Cake Model架构.在生产模式下如果未找到模式高速缓存文件,则它将基于数据库上的当前模式创建新的高速缓存文件.在每次执行的开发模式中,它将更新架构缓存.

仍然是它在分页中的问题,那么你必须遵循CakePHP 2.x文档.这里我假设您的代码在ApiLogsController中,方法是索引.根据您的代码应该是文档.

public function index() {
    $this->Paginator->settings = array(
        'limit' => 50,'order' => 'ApiLog.id DESC'
        'paramType' => 'querystring','conditions'=>  array('ApiLog.log_type' => 2),'recursive'=>-1,// should be used with joins
        'joins'=>array(
            array(
                'table'=>'users','type'=>'LEFT','alias'=>'User','conditions'=>array('User.id = ApiLog.user_id')
            )
        )
    );
    $data = $this->Paginator->paginate('ApiLog');
    $this->set(compact('data'));
}

要么

// your default setting in ApiLogController class
public $components = array('Paginator');
public $paginate = array(
    'limit' => 50,'paramType' => 'querystring'
);

public function index() {
// overriding/extending default settings

$this->Paginator->settings['order']='ApiLog.id DESC';
$this->Paginator->settings['conditions']=array('ApiLog.log_type' => 2),$this->Paginator->settings['recursive']= -1;
$this->Paginator->settings['joins']=array(
        array(
            'table'=>'users','conditions'=>array('User.id = ApiLog.user_id')
        )
    );

$data = $this->Paginator->paginate('ApiLog');
$this->set(compact('data'));
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何选择合适的 C++ Web 开发框架?
利用 C++ 框架构建高并发 Web 应用的策略
用 C++ 框架开发跨平台图形应用程序
golang框架中安全编码实践的最佳指南是什么?
golang框架与其他语言框架在设计理念上的区别有哪些?
C++ 图形框架与其他语言框架的比较
C++ 框架与其他 Web 开发框架的对比分析
使用 C++ 框架构建大型项目最佳实践
C++ 框架如何提高大型项目开发效率
C++ 框架中依赖注入的持续集成与部署工具
如何与社区协作和贡献到自定义 Golang 框架?
C++ 框架在大型项目中如何实现模块化开发
使用 C++ 框架开发跨平台 Web 应用
C++ 框架在大型项目中的优缺点
golang框架在性能上的优势体现在哪些方面?
C++ 框架在嵌入式系统内存优化中的优势
golang框架在人工智能与机器学习中的作用
如何扩展 Golang 框架以支持特定功能?
如何利用 Go Modules 和依赖项管理来自定义 Golang 框架?
Golang 框架中的性能优化技巧