首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示错误的联接表的Codeigniter 4分页

显示错误的联接表的Codeigniter 4分页
EN

Stack Overflow用户
提问于 2020-12-13 12:32:59
回答 1查看 1.5K关注 0票数 0

我在做代码点火器项目。我显示的新闻表格与加入左新闻类别和分页。当我尝试下面的代码时,我得到了一个错误Call to undefined method CodeIgniter\Database\MySQLi\Builder::paginate()。如何使用连接和分页显示新闻数据?

代码语言:javascript
复制
    $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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 10:33:27

$db->table()创建一个查询生成器对象。分页适用于模型对象。你的分页方式不对。您应该创建一个名为tblNewsModel的模型文件,它将为您处理分页。

代码语言:javascript
复制
<?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);
    }

}

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

代码语言:javascript
复制
$tblNewsModel = new \App\Models\tblNewsModel();
$data['news_fetched'] = $tblNewsModel->paginateNews(10);
$data['pager'] = $tblNewsModel->pager;
$data['links'] = $data['pager']->links();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65275626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档