[모델]

// app/Models/ItemModel.php
namespace App\Models;
use CodeIgniter\Model;

class ItemModel extends Model
{
    protected $table = 'items'; // 테이블 이름
    protected $primaryKey = 'id';
    protected $allowedFields = ['title', 'content']; // 컬럼 설정

    // 데이터 가져오기 (limit, offset 사용)
    public function getItems($limit, $offset)
    {
        return $this->orderBy('id', 'DESC')
                    ->findAll($limit, $offset);
    }
}

 

[컨트롤러]

// app/Controllers/ItemController.php
namespace App\Controllers;
use App\Models\ItemModel;

class ItemController extends BaseController
{
    public function index()
    {
        $model = new ItemModel();
        $data['items'] = $model->getItems(3, 0); // 처음 3개만 로드
        return view('items_view', $data);
    }

    public function loadMore()
    {
        $offset = $this->request->getPost('offset'); // AJAX로 받은 offset
        $model = new ItemModel();
        $items = $model->getItems(3, $offset); // 3개씩 추가로 가져오기

        return view('load_more_items', ['items' => $items]);
    }
}

[뷰]

// app/Controllers/ItemController.php
namespace App\Controllers;
use App\Models\ItemModel;

class ItemController extends BaseController
{
    public function index()
    {
        $model = new ItemModel();
        $data['items'] = $model->getItems(3, 0); // 처음 3개만 로드
        return view('items_view', $data);
    }

    public function loadMore()
    {
        $offset = $this->request->getPost('offset'); // AJAX로 받은 offset
        $model = new ItemModel();
        $items = $model->getItems(3, $offset); // 3개씩 추가로 가져오기

        return view('load_more_items', ['items' => $items]);
    }
}

[추가뷰]

<!-- app/Views/load_more_items.php -->
<?php foreach ($items as $item): ?>
    <div class="item">
        <h3><?= esc($item['title']) ?></h3>
        <p><?= esc($item['content']) ?></p>
    </div>
<?php endforeach; ?>

Total
Today
Yesterday