View তৈরি করা এবং ডাটা পাঠানো

ভিউস (Views) এবং টেমপ্লেটস - কেকপিএইচপি (CakePHP) - Web Development

289

CakePHP-তে View হলো যে অংশটি ইউজারকে তথ্য প্রদর্শন করে। এটি কন্ট্রোলারের মাধ্যমে প্রাপ্ত ডাটা ব্যবহার করে ফ্রন্টএন্ডে দেখানোর কাজ করে। View তৈরির জন্য CakePHP MVC (Model-View-Controller) আর্কিটেকচারের উপর ভিত্তি করে কাজ করে এবং ডাটা পাঠানোর জন্য সাধারণত কন্ট্রোলার থেকে set() মেথড ব্যবহার করা হয়।

নিচে CakePHP-তে View তৈরি করা এবং ডাটা পাঠানোর প্রক্রিয়া ব্যাখ্যা করা হলো।


১. কন্ট্রোলার থেকে ডাটা View-এ পাঠানো

CakePHP-তে কন্ট্রোলার থেকে ডাটা পাঠানোর জন্য set() মেথড ব্যবহার করা হয়। কন্ট্রোলারের কোনো অ্যাকশনে ডাটা প্রস্তুত করার পর set() মেথডের মাধ্যমে সেই ডাটা View-এ পাঠানো হয়।

১.১. কন্ট্রোলার উদাহরণ

ধরা যাক, আমাদের একটি PostsController রয়েছে এবং আমরা এই কন্ট্রোলারের মাধ্যমে একটি পোস্টের তথ্য View-এ পাঠাতে চাই।

// src/Controller/PostsController.php
namespace App\Controller;

use App\Controller\AppController;

class PostsController extends AppController
{
    public function view($id = null)
    {
        // পোস্টের তথ্য ডাটাবেস থেকে অনুসন্ধান করা
        $post = $this->Posts->get($id);

        // পোস্টের তথ্য View-এ পাঠানো
        $this->set(compact('post'));
    }
}

এখানে:

  • get(): পোস্টের ডাটাবেস রেকর্ড পেতে Posts মডেল থেকে ব্যবহৃত হচ্ছে।
  • set(compact('post')): post ভ্যারিয়েবলটি View-এ পাঠানো হচ্ছে। compact() ফাংশনটি ভ্যারিয়েবলকে অ্যারে হিসেবে পাঠানোর একটি সহজ পদ্ধতি।

২. View তৈরি করা

CakePHP-তে প্রতিটি কন্ট্রোলার অ্যাকশনের জন্য আলাদা View ফাইল তৈরি করতে হয়। এই ফাইলগুলো সাধারণত src/Template ডিরেক্টরির মধ্যে থাকে এবং ফাইলের নাম কন্ট্রোলার অ্যাকশনের নামের সাথে মেলে।

২.১. View ফাইল উদাহরণ

উপরের কন্ট্রোলার উদাহরণের জন্য, আমাদের একটি view.ctp ফাইল তৈরি করতে হবে যেখানে পোস্টের তথ্য প্রদর্শন করা হবে।

<!-- src/Template/Posts/view.ctp -->
<h1><?= h($post->title) ?></h1>
<p><?= h($post->content) ?></p>

এখানে:

  • : post ডাটাবেস থেকে প্রাপ্ত পোস্টের শিরোনাম এবং বিষয়বস্তু প্রদর্শন করা হচ্ছে। h() ফাংশনটি নিরাপদ HTML আউটপুট নিশ্চিত করার জন্য ব্যবহৃত হয়।
  • $post->title এবং $post->content: post ভ্যারিয়েবল থেকে শিরোনাম এবং বিষয়বস্তু প্রাপ্ত হচ্ছে।

৩. একাধিক ডাটা View-এ পাঠানো

একাধিক ভ্যারিয়েবল পাঠানোর জন্য set() মেথডে compact() ফাংশন ব্যবহার করা যেতে পারে অথবা অ্যারে আকারে সরাসরি ডাটা পাঠানো যায়।

৩.১. একাধিক ভ্যারিয়েবল পাঠানোর উদাহরণ

// src/Controller/PostsController.php
public function index()
{
    // পোস্টের তালিকা ডাটাবেস থেকে পাওয়া
    $posts = $this->Posts->find('all');

    // অন্য ডাটা, যেমন ক্যাটাগরি পাঠানো
    $categories = $this->Categories->find('all');

    // একাধিক ভ্যারিয়েবল View-এ পাঠানো
    $this->set(compact('posts', 'categories'));
}

এখানে:

  • compact('posts', 'categories'): posts এবং categories ভ্যারিয়েবল দুটি View-এ পাঠানো হচ্ছে।

৩.২. View ফাইলের উদাহরণ

<!-- src/Template/Posts/index.ctp -->
<h1>Posts</h1>
<ul>
    <?php foreach ($posts as $post): ?>
        <li><?= h($post->title) ?></li>
    <?php endforeach; ?>
</ul>

<h2>Categories</h2>
<ul>
    <?php foreach ($categories as $category): ?>
        <li><?= h($category->name) ?></li>
    <?php endforeach; ?>
</ul>

এখানে:

  • $posts: পোস্টের তালিকা প্রদর্শন করা হচ্ছে।
  • $categories: ক্যাটাগরি তালিকা প্রদর্শন করা হচ্ছে।

৪. Helper ব্যবহার করে View-এ ডাটা প্রদর্শন

CakePHP-তে Helper ব্যবহার করে বিভিন্ন ধরনের HTML উপাদান যেমন ফর্ম, লিংক, ইমেজ ইত্যাদি সহজে তৈরি করা যায়। এর মাধ্যমে ডাটাকে আরও কার্যকরভাবে প্রদর্শন করা যায়।

৪.১. Form Helper উদাহরণ

// src/Template/Posts/add.ctp
<?= $this->Form->create($post) ?>
    <?= $this->Form->control('title') ?>
    <?= $this->Form->control('content') ?>
    <?= $this->Form->button(__('Save Post')) ?>
<?= $this->Form->end() ?>

এখানে:

  • FormHelper ব্যবহার করে ফর্ম তৈরি করা হচ্ছে, যাতে ব্যবহারকারী নতুন পোস্ট যোগ করতে পারে।

৫. Layout ব্যবহার করে View ডিজাইন

CakePHP-তে Layout ব্যবহার করে ওয়েব পৃষ্ঠার সাধারণ কাঠামো (header, footer ইত্যাদি) তৈরি করা হয়। প্রতিটি View একটি নির্দিষ্ট Layout ব্যবহার করতে পারে।

৫.১. Layout উদাহরণ

<!-- src/Template/Layout/default.ctp -->
<!DOCTYPE html>
<html>
<head>
    <title><?= $this->fetch('title') ?></title>
</head>
<body>
    <header>
        <h1>My CakePHP App</h1>
        <nav>
            <?= $this->Html->link('Home', ['controller' => 'Pages', 'action' => 'display', 'home']) ?>
            <?= $this->Html->link('Posts', ['controller' => 'Posts', 'action' => 'index']) ?>
        </nav>
    </header>
    <main>
        <?= $this->fetch('content') ?>
    </main>
    <footer>
        <p>© 2024 My CakePHP App</p>
    </footer>
</body>
</html>

এখানে:

  • $this->fetch('content'): এই অংশে কন্ট্রোলার থেকে পাঠানো মূল কনটেন্ট দেখা যাবে, যেমন view.ctp বা index.ctp ফাইলের কনটেন্ট।

CakePHP-তে View তৈরি করা এবং ডাটা পাঠানো একটি সহজ প্রক্রিয়া। কন্ট্রোলার থেকে set() মেথডের মাধ্যমে ডাটা View-এ পাঠানো হয়, এবং তারপর সেই ডাটা HTML রেন্ডারিংয়ের মাধ্যমে প্রদর্শন করা হয়। একাধিক ভ্যারিয়েবল পাঠানো, Helper ব্যবহার করে ফর্ম তৈরি, এবং Layout ব্যবহার করে ওয়েব পৃষ্ঠার কাঠামো তৈরি করা যায়। এইভাবে আপনি CakePHP অ্যাপ্লিকেশনটির UI এবং ইউজার ইন্টারফেস তৈরি করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...