Welcome Guest, Not a member yet? Register   Sign In
Help with Codeigniter v4 pagination Library
#7

Thank you all for the support and help, I carefully followed your device and I get a solution to my issue. I'd like to hear if this solution has no down effect to the app performance.

Here is what I have done to model class;
PHP Code:
class IncomesModel extends Model
{
    protected $table "incomes"

    public function __construct(){
       parent::__construct();
    }

    public function getData()
    {
        //reset table to be used as default
        $this->table 'view_province_incomes';

        //creating view table to your database to hold the data
          $sql "CREATE OR REPLACE VIEW view_province_incomes AS ";
        $sql .= "
        SELECT Date, 
        SUM(Income) as Income, 
        SUM(Expense) as Expense, 
        SUM(Income) - SUM(Expense) as Profit 
        FROM ( 
                  SELECT 
                      province_income.date as Date, 
                      province_income.amount as Income, 
                      0 as Expense 
                  FROM province_income
                  LEFT JOIN province ON province.provId = province_income.provId
                  WHERE province_income.provId = 5
                  UNION ALL 
                  SELECT 
                      province_expenses.date as Date, 
                      0 as Income, 
                     province_expenses.amount as Expense 
                  FROM province_expenses
                  LEFT JOIN province ON province.provId = province_expenses.provId
                  WHERE province_expenses.provId = 5 
           ) as t 
        GROUP BY Date
       "
;
      
       $this
->db->query($sql);
       return $this//to make easy chaining with the instance
    }


//Controller
PHP Code:
  public function index()
  {
      $data['results'] = $this->model->getData()->asObject()->paginate(4);
      $data['pager']   $this->model->pager->links();
      return view('Income/index'$data);
  

//View
PHP Code:
<?php foreach ($results as $result): ?>
    <div style="display: flex; justify-content: space-between;">
        <p> <?= $result->Date ?></p>
        <p> <?= $result->Income ?></p>
        <p> <?= $result->Expense ?></p>
        <p> <?= $result->Profit ?></p>
    </div>
<?php endforeach;?>

<!-- Pagination -->
<?= $pager ?>

My Output
PHP Code:
+------------+-----------------------------+
Date       Incomes  Expense Profit |
+------------+----------+---------+--------+
2018-06-12 10000    5000    5000   
+------------+----------+---------+--------+
2018-06-14 17000    9000    8000   
+------------+----------+---------+--------+
2018-06-15 8000     6000    2000   |
+------------------------------------------+ 

Any suggestion, advice, alternatives please.
Thank you very much!
Reply


Messages In This Thread
RE: Help with Codeigniter v4 pagination Library - by venance - 03-23-2021, 06:16 AM



Theme © iAndrew 2016 - Forum software by © MyBB