Welcome Guest, Not a member yet? Register   Sign In
Pagination problem
#1

How to use pagination when we select data from a model by a given column and sort it by yet another column.
PHP Code:
<?php

namespace App\Models;

use 
CodeIgniter\Model;

class 
BlogModel extends Model
{
    protected $table 'en_blog';
    protected $primaryKey 'blog_id';

    // Blog

    public function SelectOrder()
    {
        $builder $this->builder();
        $this->builder->where('blog_category''1');
        $this->builder->where('blog_active''y');
        $builder->orderBy('blog_id''DESC');

        return $this;
    }
}
?>

In this case, in the controller I do things like this. However, the next pages always shows the last page. In addition, all pages to which you can go are highlighted, instead of the page you are currently on was displayed in a different color.

PHP Code:
$DataToView['blogs'] = $this->Model->SelectOrder()->paginate(10'group1'$PageId2);
$DataToView['pager'] = $this->Model->SelectOrder()->pager
Reply
#2

Use manumal pagination
Model:

Code:
public function SelectOrder($perpage, $offset = 0)
    {
        $builder = $this->builder();
        $builder->where('blog_category', '1');
        $builder->where('blog_active', 'y');
if($perpage)
{
$builder->limit($perpage, $offset);
}
        $builder->orderBy('blog_id', 'DESC');

        return $builder->get()->getResult('array');
    }

Controller:
Calculate total order:

Code:
$totalOrder = count($this->Model->SelectOrder());
//get page number
$page = (int)$this->request->getVar("page");
$perpage = 10;
$offset = ($page >= 1) ? ($page-1)*$perpage  : 0;
//get order
$DataToView['blogs'] = $this->Model->SelectOrder($perpage, $offset);
//get pagination links
$pager = \Config\Services::pager();
$DataToView['pager'] = $pager->makeLinks($page, $perpage, $totalOrder, 'default_full');

In view file:
Code:
<?=$pager;?>
Reply




Theme © iAndrew 2016 - Forum software by © MyBB