Codeigniter 4分页与显示错误的联接表 [英] Codeigniter 4 Pagination with join tables showing error

查看:167
本文介绍了Codeigniter 4分页与显示错误的联接表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从事Codeigniter项目.我正在显示带有左连接新闻类别和分页的新闻表.当我尝试以下代码时,出现错误未定义方法CodeIgniter \ Database \ MySQLi \ Builder :: paginate()的调用.如何通过加入和分页显示新闻数据?

I am working on codeigniter project. I am showing news table with join left news category and paginate. When I tried the below code I get an error Call to undefined method CodeIgniter\Database\MySQLi\Builder::paginate(). How to show news data with join and pagination?

    $db      = \Config\Database::connect();
    $news_tbl = $db->table('tbl_news')->join('tbl_category', 'tbl_news.category_id = tbl_category.category_id');
    $data['news_fetched'] = $news_tbl->paginate(10);
    $data['pager'] = $news_fetched->pager;
    $data['links'] = $data['pager']->links();

推荐答案

$ db-> table()创建查询构建器对象.分页适用于模型对象.您没有正确设置分页方式.您应该创建一个名为 tblNewsModel 的模型文件,该文件将为您处理分页.

$db->table() creates a query builder object. Pagination works with model objects. You're not setting your pagination the right way. You should create a Model file called tblNewsModel that will handle pagination for you.

<?php
namespace App\Models;

class tblNewsModel extends \CodeIgniter\Model {

    protected $table = 'tbl_news';
    protected $primaryKey = 'your_pk_id';

    // your function to paginate
    public function paginateNews(int $nb_page) {
        return $this->select()->join('tbl_category', 'tbl_news.category_id = tbl_category.category_id')->paginate($nb_page);
    }

}

然后在您的控制器中,只需创建此模型的新实例并要求他给您分页

And then in your controller, just create a new instance of this model and ask him to give you the pagination

$tblNewsModel = new \App\Models\tblNewsModel();
$data['news_fetched'] = $tblNewsModel->paginateNews(10);
$data['pager'] = $tblNewsModel->pager;
$data['links'] = $data['pager']->links();

这篇关于Codeigniter 4分页与显示错误的联接表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆