Database Interaction এর জন্য Model ব্যবহার

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Models |

Model হলো CodeIgniter এর MVC আর্কিটেকচারের একটি অংশ, যা ডাটাবেসের সাথে যোগাযোগ করে এবং ডেটা ম্যানেজমেন্ট পরিচালনা করে। এটি ডাটাবেস রিকোয়েস্ট পরিচালনা, ডেটা ফিল্টারিং, এবং ডেটা রিটার্ন করার জন্য ব্যবহৃত হয়।


Model তৈরির ধাপ

CodeIgniter এ Model তৈরি করতে, নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

ধাপ ১: Model ফাইল তৈরি

  1. app/Models ডিরেক্টরিতে যান।
  2. একটি নতুন PHP ফাইল তৈরি করুন (যেমন: ProductModel.php)।
  3. CodeIgniter\Model ক্লাস থেকে এক্সটেন্ড করে একটি ক্লাস তৈরি করুন।

উদাহরণ:

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products'; // টেবিলের নাম
    protected $primaryKey = 'id'; // প্রাইমারি কী
    protected $allowedFields = ['name', 'price', 'description']; // আপডেট করার অনুমতি প্রাপ্ত ফিল্ডগুলো
}

ডাটাবেস কনফিগারেশন

Model এর মাধ্যমে ডাটাবেসে কাজ করার আগে ডাটাবেস কনফিগার করতে হবে।

ডাটাবেস কনফিগারেশন ফাইল:

app/Config/Database.php ফাইল খুলুন এবং ডাটাবেস তথ্য দিন:

public $default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'your_database_name',
    'DBDriver' => 'MySQLi',
];

অথবা .env ফাইল ব্যবহার করুন:

database.default.hostname = localhost
database.default.database = your_database_name
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi

Model ব্যবহার করে ডাটাবেস Interaction

১. Model লোড করা

Model ব্যবহার করতে কন্ট্রোলারে লোড করুন:

use App\Models\ProductModel;

$productModel = new ProductModel();

২. ডাটাবেস থেকে ডেটা রিড করা

সমস্ত ডেটা রিড করা:
$products = $productModel->findAll();
নির্দিষ্ট ডেটা রিড করা:
$product = $productModel->find(1); // প্রাইমারি কী '1' এর ডেটা
ডেটা ফিল্টার করা:
$products = $productModel->where('price >', 100)->findAll();

৩. ডাটাবেসে ডেটা ইনসার্ট করা

Model এর insert মেথড ব্যবহার করে ডেটা ইনসার্ট করুন:

$data = [
    'name' => 'Laptop',
    'price' => 50000,
    'description' => 'High performance laptop',
];

$productModel->insert($data);

৪. ডাটাবেসে ডেটা আপডেট করা

Model এর update মেথড ব্যবহার করে ডেটা আপডেট করুন:

$data = [
    'price' => 45000,
];

$productModel->update(1, $data); // ID 1 এর ডেটা আপডেট

৫. ডাটাবেস থেকে ডেটা ডিলিট করা

Model এর delete মেথড ব্যবহার করে ডেটা ডিলিট করুন:

$productModel->delete(1); // ID 1 এর ডেটা ডিলিট

কাস্টম কুয়েরি ব্যবহার

যদি আপনি কাস্টম কুয়েরি চালাতে চান, Model এর query মেথড ব্যবহার করতে পারেন:

$query = $productModel->query("SELECT * FROM products WHERE price > ?", [100]);
$results = $query->getResult();

উদাহরণ: কন্ট্রোলারে Model ব্যবহার

<?php

namespace App\Controllers;

use App\Models\ProductModel;

class Product extends BaseController
{
    public function index()
    {
        $productModel = new ProductModel();
        $data['products'] = $productModel->findAll(); // সমস্ত প্রোডাক্ট ফেচ
        return view('product_list', $data); // ভিউ লোড
    }

    public function add()
    {
        $productModel = new ProductModel();
        $data = [
            'name' => 'Mobile Phone',
            'price' => 30000,
            'description' => 'Smartphone with 4GB RAM',
        ];
        $productModel->insert($data); // নতুন প্রোডাক্ট ইনসার্ট
        return redirect()->to('/product');
    }
}

গুরুত্বপূর্ণ মেথডের তালিকা

মেথডকাজ
findAll()সমস্ত ডেটা রিটার্ন করে।
find($id)নির্দিষ্ট ID এর ডেটা রিটার্ন করে।
insert($data)নতুন ডেটা ইনসার্ট করে।
update($id, $data)নির্দিষ্ট ID এর ডেটা আপডেট করে।
delete($id)নির্দিষ্ট ID এর ডেটা ডিলিট করে।
where($field, $value)কন্ডিশন অনুযায়ী ডেটা ফিল্টার করে।

Model ব্যবহার করে CodeIgniter এ ডাটাবেস Interaction সহজ, কার্যকর এবং দ্রুত। এটি ডেটা ম্যানেজমেন্টকে আরও সুসংগঠিত এবং পুনঃব্যবহারযোগ্য করে তোলে।

Content added By
Promotion