Pagination এবং Sort ফিচার

ডাটাবেস ইন্টিগ্রেশন এবং কুয়েরি বিল্ডার - কেকপিএইচপি (CakePHP) - Web Development

269

CakePHP তে Pagination এবং Sort ফিচার দুটি অত্যন্ত গুরুত্বপূর্ণ এবং ব্যবহৃত টুল, যা বড় ডেটাসেটের মধ্যে ডেটা প্রদর্শন এবং সেগুলির সঠিকভাবে সাজানোর কাজ করে। Pagination ব্যবহার করে আপনি ডেটা পেজিনেট করতে পারেন, এবং Sort ব্যবহার করে আপনি ডেটা অর্ডার করতে পারেন (যেমন, আলফানিউমেরিক বা টাইমস্ট্যাম্প অনুযায়ী)। এই ফিচার দুটি অ্যাপ্লিকেশনে ইউজার ইন্টারফেসকে আরও ব্যবহারকারী বান্ধব এবং কার্যকরী করে তোলে।


Pagination ফিচার

Pagination বা পেজিনেশন হলো একটি প্রক্রিয়া যার মাধ্যমে আপনি বড় ডেটাসেটকে ছোট ছোট অংশে বিভক্ত করে প্রদর্শন করতে পারেন, যাতে একসাথে সব ডেটা দেখানোর দরকার না পড়ে। পেজিনেশন ব্যবহার করলে, ইউজাররা নির্দিষ্ট সংখ্যক রেকর্ড দেখতে পারে এবং পরবর্তী বা পূর্ববর্তী পৃষ্ঠায় যেতে পারে।

Pagination সক্রিয় করা

CakePHP তে Pagination ফিচারটি চালু করার জন্য আপনাকে প্রথমে কন্ট্রোলারে এটি কনফিগার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে পেজিনেশন ব্যবহার করা হয়েছে।

উদাহরণ:

  1. কন্ট্রোলার (ArticlesController.php):
public function index()
{
    $this->loadModel('Articles');  // মডেল লোড করা
    $articles = $this->paginate($this->Articles->find());  // পেজিনেশন চালু করা
    $this->set(compact('articles'));  // ভিউতে ডেটা পাঠানো
}
  • $this->paginate(): এটি ডেটা সেটের পেজিনেশন চালু করে এবং ডিফল্টভাবে ২০টি রেকর্ড এক পৃষ্ঠায় দেখায় (যদি ডিফল্ট কনফিগারেশন অনুসরণ করা হয়)।
  • $this->Articles->find(): এটি Articles মডেল থেকে ডেটা ফেচ করে।
  1. ভিউ (index.ctp):
<table>
    <tr>
        <th>Title</th>
        <th>Content</th>
    </tr>
    <?php foreach ($articles as $article): ?>
        <tr>
            <td><?= h($article->title) ?></td>
            <td><?= h($article->content) ?></td>
        </tr>
    <?php endforeach; ?>
</table>

<!-- Pagination Links -->
<div class="pagination">
    <?= $this->Paginator->prev('<< Previous', null, null, ['class' => 'prev']); ?>
    <?= $this->Paginator->numbers(); ?>
    <?= $this->Paginator->next('Next >>', null, null, ['class' => 'next']); ?>
</div>
  • $this->Paginator->prev(): পৃষ্ঠার পূর্ববর্তী লিঙ্ক।
  • $this->Paginator->numbers(): পেজ নম্বরগুলো দেখায়।
  • $this->Paginator->next(): পরবর্তী পৃষ্ঠার লিঙ্ক।

Pagination এর কনফিগারেশন

Pagination এর কনফিগারেশন config/app.php ফাইলের মাধ্যমে কাস্টমাইজ করা যায়। এখানে আপনি প্রতিটি পৃষ্ঠায় প্রদর্শিত রেকর্ডের সংখ্যা সেট করতে পারেন।

'Paginator' => [
    'limit' => 20,  // প্রতি পৃষ্ঠায় ২০টি রেকর্ড
    'order' => [
        'Articles.title' => 'asc',  // ডিফল্ট অর্ডার
    ],
],

Sort ফিচার

Sort বা ডেটা সাজানোর ফিচারটি ব্যবহারকারীকে তাদের প্রয়োজনীয় ক্রম অনুসারে ডেটা সাজানোর সুবিধা প্রদান করে। এটি সাধারণত টেবিলের কলাম হেডারে ক্লিক করার মাধ্যমে ট্রিগার হয়, এবং এটি ডেটা অর্ডার করতে ব্যবহৃত হয় (যেমন, ক্রমবর্ধমান বা অবতরণশীল অর্ডারে)।

Sort সক্রিয় করা

CakePHP তে ডেটা সাজানোর জন্য, Paginator কম্পোনেন্ট ব্যবহার করা হয়। এই কম্পোনেন্টটি ডেটা সংগ্রহ করার সময় ডেটা সাজানোর কার্যক্রম পরিচালনা করে।

  1. কন্ট্রোলার (ArticlesController.php):
public function index()
{
    $this->loadModel('Articles');
    $query = $this->Articles->find()->order(['Articles.title' => 'asc']);  // ডিফল্ট অর্ডার
    $articles = $this->paginate($query);
    $this->set(compact('articles'));
}
  1. ভিউ (index.ctp):
<table>
    <tr>
        <th><?= $this->Paginator->sort('title') ?></th>
        <th><?= $this->Paginator->sort('content') ?></th>
    </tr>
    <?php foreach ($articles as $article): ?>
        <tr>
            <td><?= h($article->title) ?></td>
            <td><?= h($article->content) ?></td>
        </tr>
    <?php endforeach; ?>
</table>

<div class="pagination">
    <?= $this->Paginator->prev('<< Previous', null, null, ['class' => 'prev']); ?>
    <?= $this->Paginator->numbers(); ?>
    <?= $this->Paginator->next('Next >>', null, null, ['class' => 'next']); ?>
</div>
  • $this->Paginator->sort('title'): এটি title কলামের উপর সটিং (sort) ফিচার যোগ করবে। ক্লিক করার মাধ্যমে ইউজার অর্ডার পরিবর্তন করতে পারবেন।

Sort এর কনফিগারেশন

যদি আপনি একটি নির্দিষ্ট ডিফল্ট অর্ডার ব্যবহার করতে চান, তবে order প্যারামিটারটি paginate() মেথডে ব্যবহার করা যায়। উদাহরণস্বরূপ:

$this->paginate($this->Articles->find()->order(['Articles.created' => 'desc']));

এটি Articles মডেলের ডেটাকে ডিফল্টভাবে created তারিখ অনুসারে অবতরণশীল (descending) অর্ডারে সাজাবে।


Pagination এবং Sort একত্রে ব্যবহার

CakePHP তে Pagination এবং Sort ফিচার একসাথে ব্যবহার করলে আপনি বড় ডেটাসেটকে পেজিনেট এবং সঠিকভাবে সাজাতে পারবেন। এর মাধ্যমে ব্যবহারকারীরা বড় তালিকা বা ডেটাসেটগুলোকে সহজেই দেখতে এবং সেগুলোর মধ্যে সহজে নেভিগেট করতে পারবেন।

উদাহরণ:

  1. কন্ট্রোলার (ArticlesController.php):
public function index()
{
    $this->loadModel('Articles');
    $query = $this->Articles->find();
    $query = $query->order([$this->request->getQuery('sort', 'Articles.title') => $this->request->getQuery('direction', 'asc')]);
    $articles = $this->paginate($query);
    $this->set(compact('articles'));
}
  1. ভিউ (index.ctp):
<table>
    <tr>
        <th><?= $this->Paginator->sort('title') ?></th>
        <th><?= $this->Paginator->sort('content') ?></th>
    </tr>
    <?php foreach ($articles as $article): ?>
        <tr>
            <td><?= h($article->title) ?></td>
            <td><?= h($article->content) ?></td>
        </tr>
    <?php endforeach; ?>
</table>

<div class="pagination">
    <?= $this->Paginator->prev('<< Previous', null, null, ['class' => 'prev']); ?>
    <?= $this->Paginator->numbers(); ?>
    <?= $this->Paginator->next('Next >>', null, null, ['class' => 'next']); ?>
</div>

এটি ইউজারকে সজ্জিত করার সুযোগ দেবে, এবং তারা চাইলে ডেটা সাজানোর জন্য কলাম হেডারে ক্লিক করতে পারবে।


CakePHP তে Pagination এবং Sort ফিচার দুটি খুবই গুরুত্বপূর্ণ টুল যা ডেটার প্রদর্শন এবং সাজানো সহজ করে তোলে। Pagination ব্যবহার করে আপনি বড় ডেটাসেটকে ছোট ছোট অংশে ভাগ করতে পারেন, এবং Sort ব্যবহার করে আপনি ডেটা সাজানোর সুবিধা প্রদান করতে পারেন। এই দুটি ফিচার একত্রে ব্যবহার করলে ব্যবহারকারীরা অ্যাপ্লিকেশনটিতে আরও সহজে নেভিগেট এবং ডেটা অ্যাক্সেস করতে সক্ষম হবে।

Content added By
Promotion

Are you sure to start over?

Loading...