CodeIgniter Models

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

Model হলো CodeIgniter-এ MVC (Model-View-Controller) প্যাটার্নের একটি গুরুত্বপূর্ণ অংশ। এটি মূলত ডেটাবেস এবং ডেটা-সংক্রান্ত কাজ পরিচালনার জন্য ব্যবহৃত হয়। Model ডাটাবেস থেকে ডেটা রিট্রিভ, ইনসার্ট, আপডেট, বা ডিলিট করার জন্য দায়ী।


Model কীভাবে কাজ করে?

  • Model অ্যাপ্লিকেশনের বিজনেস লজিক পরিচালনা করে।
  • এটি সরাসরি ডাটাবেস এবং ডেটাবেস ড্রাইভার এর সাথে কাজ করে।
  • Controller Model থেকে ডেটা নিয়ে ভিউ-তে পাঠায়।

CodeIgniter এ Model তৈরি করা

১. Model ফাইল তৈরি

Model ফাইল app/Models ডিরেক্টরিতে রাখা হয়।

উদাহরণস্বরূপ: একটি ProductModel তৈরি করুন।

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products'; // ডাটাবেসের টেবিলের নাম
    protected $primaryKey = 'id'; // প্রাইমারি কী

    protected $allowedFields = ['name', 'price', 'description']; // ইনসার্ট/আপডেটের জন্য অনুমোদিত ফিল্ডগুলো
}

২. Controller থেকে Model ব্যবহার

Controller এ 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);
    }
}

Model এর প্রধান ফিচার

১. টেবিল এবং প্রাইমারি কী সংজ্ঞায়িত

Model-এ কোন ডাটাবেস টেবিল এবং প্রাইমারি কী ব্যবহার করা হবে তা সংজ্ঞায়িত করা হয়।

protected $table = 'products';
protected $primaryKey = 'id';

২. ইনসার্ট বা আপডেট করার অনুমোদিত ফিল্ড

ডাটাবেসে যেসব ফিল্ড ইনসার্ট বা আপডেট করা যাবে, সেগুলো allowedFields-এ উল্লেখ করতে হয়।

protected $allowedFields = ['name', 'price', 'description'];

৩. টেবিল থেকে ডেটা রিট্রিভ

CodeIgniter Model বিভিন্ন বিল্ট-ইন মেথড প্রদান করে ডেটা রিট্রিভ করার জন্য:

// সমস্ত ডেটা রিট্রিভ
$products = $productModel->findAll();

// নির্দিষ্ট রেকর্ড রিট্রিভ
$product = $productModel->find(1);

// টেবিল থেকে কন্ডিশন অনুযায়ী রেকর্ড
$product = $productModel->where('price >', 500)->findAll();

ডেটা ইনসার্ট, আপডেট এবং ডিলিট

ডেটা ইনসার্ট

ডাটাবেসে ডেটা যোগ করার জন্য insert() মেথড ব্যবহার করা হয়:

$productModel = new ProductModel();
$productModel->insert([
    'name' => 'Product Name',
    'price' => 500,
    'description' => 'Product Description',
]);

ডেটা আপডেট

ডাটাবেসে ডেটা আপডেট করার জন্য update() মেথড ব্যবহার করা হয়:

$productModel->update(1, [
    'price' => 600,
    'description' => 'Updated Description',
]);

ডেটা ডিলিট

ডাটাবেস থেকে রেকর্ড মুছে ফেলার জন্য delete() মেথড ব্যবহার করা হয়:

$productModel->delete(1); // ID 1 এর রেকর্ড মুছে ফেলবে

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

CodeIgniter Model কাস্টম SQL কুয়েরি সাপোর্ট করে।

$query = $productModel->query("SELECT * FROM products WHERE price > 500");
$result = $query->getResult();

Soft Deletes

CodeIgniter Model soft delete সাপোর্ট করে। এটি রেকর্ডকে মুছে না ফেলে deleted_at নামে একটি টাইমস্ট্যাম্প যোগ করে।

Soft Delete সক্রিয় করা

Model-এ নিচের প্রপার্টি সংযোজন করুন:

protected $useSoftDeletes = true;
protected $deletedField = 'deleted_at';

Soft Delete ব্যবহার

$productModel->delete(1); // এটি রেকর্ড মুছে না ফেলে deleted_at কলাম আপডেট করবে

টেস্টিং এবং ডিবাগিং

CodeIgniter Model-এ ডিবাগিংয়ের জন্য getLastQuery() মেথড ব্যবহার করতে পারেন:

$productModel->findAll();
echo $productModel->getLastQuery(); // সর্বশেষ কুয়েরি প্রদর্শন করবে

Model এর সুবিধা

  1. ডেটাবেস অপারেশন সহজ করা: ডাটাবেস অপারেশন পরিচালনার জন্য সহজ API প্রদান করে।
  2. ডেটা নিরাপত্তা: শুধুমাত্র অনুমোদিত ফিল্ডগুলো আপডেট বা ইনসার্ট হয়।
  3. বিল্ট-ইন মেথড: রেকর্ড ফেচ, ইনসার্ট, আপডেট, এবং ডিলিট করার জন্য বিভিন্ন বিল্ট-ইন মেথড।
  4. কাস্টম কুয়েরি: জটিল SQL কুয়েরি সরাসরি রান করার সুবিধা।

CodeIgniter-এ Model ব্যবহারের মাধ্যমে ডাটাবেস ম্যানেজমেন্ট আরও সহজ এবং কার্যকরী হয়। এটি ডেভেলপারদের কোড রাইটিং এবং রক্ষণাবেক্ষণ প্রক্রিয়া দ্রুত করতে সহায়ক।

Content added By

Model কী এবং এর ভূমিকা

Model হলো CodeIgniter এর MVC (Model-View-Controller) আর্কিটেকচারের একটি গুরুত্বপূর্ণ অংশ। এটি ডাটাবেস বা ডেটা-সংক্রান্ত সমস্ত কার্যকলাপ পরিচালনা করে। Model ব্যবহার করে ডাটাবেসের সাথে সংযোগ স্থাপন, ডেটা রিট্রিভাল, ডেটা মডিফিকেশন, এবং অন্যান্য ডেটাবেস অপারেশন করা যায়।


Model কী?

Model মূলত একটি ক্লাস যা ডাটাবেসের কার্যক্রম পরিচালনা করে। এটি ডাটাবেস থেকে ডেটা টেনে এনে Controller এ পাঠায় এবং View এর মাধ্যমে সেই ডেটা প্রদর্শন করে।

Model এর প্রধান কাজ

  1. ডাটাবেস অপারেশন পরিচালনা করা:
    • ডেটা রিট্রিভ (fetch) করা।
    • ডেটা ইনসার্ট (insert) করা।
    • ডেটা আপডেট (update) করা।
    • ডেটা ডিলিট (delete) করা।
  2. ডেটা প্রক্রিয়াজাতকরণ:
    • ডেটার উপর বিভিন্ন লজিক প্রয়োগ করা।
  3. ডেটার প্রাসঙ্গিকতা নিশ্চিত করা:
    • ডেটার ভ্যালিডেশন বা ফিল্টারিং।

CodeIgniter এ Model তৈরি

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

১. একটি Model তৈরি করুন

app/Models ডিরেক্টরিতে একটি নতুন Model তৈরি করুন। উদাহরণস্বরূপ, একটি ProductModel তৈরি করা যাক:

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products'; // টেবিলের নাম
    protected $primaryKey = 'id'; // প্রাইমারি কী

    // টেবিলের ফিল্ডসমূহ
    protected $allowedFields = ['name', 'description', 'price'];
}

২. Model কনফিগারেশন

  • protected $table: ডাটাবেসের টেবিলের নাম উল্লেখ করতে হয়।
  • protected $primaryKey: টেবিলের প্রাইমারি কী উল্লেখ করতে হয় (ডিফল্ট: id)।
  • protected $allowedFields: টেবিলের যেসব ফিল্ডে ডেটা ইনসার্ট বা আপডেট করা যাবে, সেগুলো উল্লেখ করতে হয়।

Controller এ Model ব্যবহার

১. Controller এ Model লোড করা

Controller-এ Model ব্যবহার করতে এটি লোড করতে হয়। উদাহরণস্বরূপ:

namespace App\Controllers;

use App\Models\ProductModel;

class ProductController extends BaseController
{
    public function index()
    {
        $model = new ProductModel();
        $data['products'] = $model->findAll(); // ডেটা রিট্রিভ
        return view('product_list', $data);
    }
}

২. Controller এর মাধ্যমে ডেটাবেস অপারেশন

  • ডেটা রিট্রিভ করা:

    $products = $model->findAll(); // সমস্ত ডেটা
    $product = $model->find(1); // নির্দিষ্ট ডেটা
    
  • ডেটা ইনসার্ট করা:

    $model->save([
        'name' => 'Laptop',
        'description' => 'A high-performance laptop',
        'price' => 1000
    ]);
    
  • ডেটা আপডেট করা:

    $model->update(1, [
        'price' => 1200
    ]);
    
  • ডেটা ডিলিট করা:

    $model->delete(1);
    

View এ ডেটা পাঠানো

Controller থেকে View-এ ডেটা পাঠানোর জন্য $data অ্যারে ব্যবহার করা হয়। উদাহরণস্বরূপ:

public function index()
{
    $model = new ProductModel();
    $data['products'] = $model->findAll();
    return view('product_list', $data);
}

View ফাইলে ডেটা অ্যাক্সেস করার উদাহরণ:

<h1>Product List</h1>
<ul>
    <?php foreach ($products as $product): ?>
        <li><?php echo $product['name']; ?> - $<?php echo $product['price']; ?></li>
    <?php endforeach; ?>
</ul>

Model এর ভূমিকা CodeIgniter এ

  1. ডেটা ম্যানেজমেন্ট: ডাটাবেস সম্পর্কিত সমস্ত কাজ (রিট্রিভ, ইনসার্ট, আপডেট, ডিলিট) Model এর মাধ্যমে সম্পন্ন হয়।
  2. কোডের পুনঃব্যবহারযোগ্যতা: একবার Model তৈরি করলে তা অ্যাপ্লিকেশনের বিভিন্ন স্থানে ব্যবহার করা যায়।
  3. MVC আর্কিটেকচারের আলাদা কার্যক্রম: Model ডেটা ম্যানেজ করে, Controller ডেটা প্রসেস করে, এবং View ডেটা প্রদর্শন করে।
  4. ডেটার ভ্যালিডেশন: ডেটার সঠিকতা এবং নিরাপত্তা নিশ্চিত করে।

Model CodeIgniter এর একটি গুরুত্বপূর্ণ উপাদান, যা ডাটাবেস অপারেশন সহজ এবং কার্যকরী করে তোলে। এটি ডেটা এবং লজিক পরিচালনার মাধ্যমে অ্যাপ্লিকেশনের কার্যক্ষমতাকে উন্নত করে।

Content added By

Model তৈরি এবং ব্যবহার

Model হলো CodeIgniter এর একটি গুরুত্বপূর্ণ উপাদান, যা ডাটাবেস সংক্রান্ত কাজ পরিচালনা করে। এটি MVC (Model-View-Controller) আর্কিটেকচারের অংশ, যেখানে Model ডাটাবেস থেকে ডেটা রিট্রিভ, ইনসার্ট, আপডেট এবং ডিলিট করার দায়িত্ব পালন করে।


CodeIgniter Model তৈরি

CodeIgniter-এ একটি Model তৈরি করতে আপনাকে app/Models/ ডিরেক্টরিতে একটি ক্লাস তৈরি করতে হবে।

Model ক্লাস তৈরি

  1. app/Models/ ফোল্ডারে একটি নতুন PHP ফাইল তৈরি করুন। উদাহরণ: ProductModel.php
  2. Model ক্লাস কোড:

    <?php
    
    namespace App\Models;
    
    use CodeIgniter\Model;
    
    class ProductModel extends Model {
        protected $table      = 'products'; // ডাটাবেসের টেবিলের নাম
        protected $primaryKey = 'id';       // প্রাইমারি কি
    
        // টেবিলের ফিল্ড যা ইনসার্ট/আপডেট করার সময় ব্যবহার করা যাবে
        protected $allowedFields = ['name', 'price', 'description'];
    
        // স্বয়ংক্রিয়ভাবে created_at এবং updated_at ফিল্ড আপডেট
        protected $useTimestamps = true;
    }
    

বিস্তারিত:

  • protected $table: Model কোন টেবিলের সাথে কাজ করবে তা উল্লেখ করে।
  • protected $primaryKey: প্রাইমারি কি নির্ধারণ করে।
  • protected $allowedFields: ফিল্ড নির্ধারণ করে, যা ইনসার্ট বা আপডেট করার জন্য অনুমোদিত।
  • protected $useTimestamps: যদি টেবিলে created_at এবং updated_at ফিল্ড থাকে, তাহলে এদের স্বয়ংক্রিয়ভাবে আপডেট করে।

Model ব্যবহার

Controller এ Model লোড করা

Controller থেকে Model ব্যবহার করার জন্য:

  1. Controller এ Model ইনস্ট্যান্স তৈরি করুন:

    $productModel = new \App\Models\ProductModel();
    

ডাটাবেস অপারেশন

১. ডেটা রিট্রিভ (Retrieve Data)
public function getAllProducts() {
    $productModel = new \App\Models\ProductModel();
    $products = $productModel->findAll(); // সমস্ত ডেটা রিট্রিভ করে
    return json_encode($products);
}
২. নির্দিষ্ট ডেটা রিট্রিভ
public function getProduct($id) {
    $productModel = new \App\Models\ProductModel();
    $product = $productModel->find($id); // নির্দিষ্ট ID এর ডেটা রিট্রিভ করে
    return json_encode($product);
}
৩. ডেটা ইনসার্ট (Insert Data)
public function addProduct() {
    $productModel = new \App\Models\ProductModel();

    $data = [
        'name'        => 'Sample Product',
        'price'       => 100,
        'description' => 'This is a sample product'
    ];

    $productModel->save($data); // নতুন ডেটা ইনসার্ট করে
    echo "Product added successfully!";
}
৪. ডেটা আপডেট (Update Data)
public function updateProduct($id) {
    $productModel = new \App\Models\ProductModel();

    $data = [
        'id'          => $id,
        'price'       => 120,
        'description' => 'Updated product description'
    ];

    $productModel->save($data); // নির্দিষ্ট ডেটা আপডেট করে
    echo "Product updated successfully!";
}
৫. ডেটা ডিলিট (Delete Data)
public function deleteProduct($id) {
    $productModel = new \App\Models\ProductModel();
    $productModel->delete($id); // নির্দিষ্ট ডেটা ডিলিট করে
    echo "Product deleted successfully!";
}

Query বিল্ডার ব্যবহার

CodeIgniter এর Model ক্লাসে বিল্ট-ইন Query Builder আছে, যা ডাটাবেস অপারেশন সহজ করে।

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

public function getProductsByPrice($price) {
    $productModel = new \App\Models\ProductModel();

    $products = $productModel->where('price >', $price)->findAll();
    return json_encode($products);
}

নির্দিষ্ট কলাম নির্বাচন

public function getProductNames() {
    $productModel = new \App\Models\ProductModel();

    $names = $productModel->select('name')->findAll();
    return json_encode($names);
}

Model এর সেরা প্র্যাকটিস

  1. Model ক্লাস পরিষ্কার রাখুন: শুধু ডাটাবেস সংক্রান্ত কাজ রাখুন, অতিরিক্ত লজিক যুক্ত করবেন না।
  2. Query Builder ব্যবহার করুন: SQL কোড ম্যানুয়ালি লিখার পরিবর্তে CodeIgniter এর Query Builder ব্যবহার করুন।
  3. Validation ব্যবহার করুন: ডাটা ইনসার্ট বা আপডেট করার সময় Model এর ভ্যালিডেশন ফিচার ব্যবহার করুন।
  4. Timestamps নিশ্চিত করুন: created_at এবং updated_at ফিল্ডগুলো স্বয়ংক্রিয়ভাবে ব্যবহারের জন্য $useTimestamps = true ব্যবহার করুন।

Model এর মাধ্যমে ডাটাবেস সংক্রান্ত কাজগুলোকে সহজ, পরিষ্কার এবং সংগঠিতভাবে পরিচালনা করা যায়। এটি CodeIgniter এর ডেভেলপমেন্টে একটি অপরিহার্য অংশ।

Content added By

CodeIgniter এর Active Record প্যাটার্ন

CodeIgniter এর Active Record প্যাটার্ন হলো ডাটাবেস ইন্টারঅ্যাকশনের জন্য একটি শক্তিশালী এবং সহজ পদ্ধতি। এটি ডাটাবেসের সাধারণ কাজ (যেমন সিলেক্ট, ইনসার্ট, আপডেট, ডিলিট) সম্পাদন করার জন্য একটি সহজ, রিডেবল এবং সিকিউর মেথড সরবরাহ করে।

Active Record প্যাটার্ন ডেটাবেস কোয়েরি লেখার পরিবর্তে ফাংশন-ভিত্তিক পদ্ধতি ব্যবহার করে, যা SQL ইনজেকশন প্রতিরোধ করতে সহায়তা করে।


Active Record এর প্রধান বৈশিষ্ট্য

  1. সাধারণ এবং রিডেবল কোড: SQL কোয়েরি লেখার প্রয়োজন ছাড়াই ডেটাবেস অপারেশন করা যায়।
  2. সিকিউরিটি: SQL ইনজেকশন প্রতিরোধ করার জন্য এটি ব্যবহার করা হয়।
  3. চেইনিং সাপোর্ট: একাধিক মেথড একত্রে ব্যবহার করে কোয়েরি তৈরি করা যায়।
  4. কোড রিইউজেবিলিটি: একবার কোড লিখে বারবার ব্যবহার করা যায়।
  5. ডাটাবেস ইন্ডিপেনডেন্স: বিভিন্ন ডাটাবেস ড্রাইভারের সাথে কাজ করতে পারে।

Active Record এর সাধারণ ক্রিয়াকলাপ

১. ডেটা সিলেক্ট করা

ডাটাবেস থেকে ডেটা রিট্রিভ করার জন্য Active Record মেথড ব্যবহার করা হয়।

উদাহরণ:

$this->db->select('name, email');
$this->db->from('users');
$this->db->where('status', 'active');
$query = $this->db->get();

$result = $query->result();

উপরের কোডের সমতুল্য SQL কোয়েরি:

SELECT name, email FROM users WHERE status = 'active';

২. ডেটা ইনসার্ট করা

ডাটাবেসে নতুন ডেটা যোগ করার জন্য insert() মেথড ব্যবহার করা হয়।

উদাহরণ:

$data = [
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'status' => 'active'
];

$this->db->insert('users', $data);

উপরের কোডের সমতুল্য SQL কোয়েরি:

INSERT INTO users (name, email, status) VALUES ('John Doe', 'john@example.com', 'active');

৩. ডেটা আপডেট করা

ডাটাবেসে বিদ্যমান ডেটা আপডেট করার জন্য update() মেথড ব্যবহার করা হয়।

উদাহরণ:

$data = [
    'status' => 'inactive'
];

$this->db->where('id', 1);
$this->db->update('users', $data);

উপরের কোডের সমতুল্য SQL কোয়েরি:

UPDATE users SET status = 'inactive' WHERE id = 1;

৪. ডেটা মুছে ফেলা

ডাটাবেস থেকে ডেটা মুছে ফেলার জন্য delete() মেথড ব্যবহার করা হয়।

উদাহরণ:

$this->db->where('id', 1);
$this->db->delete('users');

উপরের কোডের সমতুল্য SQL কোয়েরি:

DELETE FROM users WHERE id = 1;

Active Record এর আরও কার্যকরী মেথড

লিমিট এবং অর্ডার

ডেটা সীমাবদ্ধ বা সাজানোর জন্য limit() এবং order_by() মেথড ব্যবহার করা হয়।

উদাহরণ:

$this->db->select('*');
$this->db->from('users');
$this->db->order_by('name', 'ASC');
$this->db->limit(10);
$query = $this->db->get();

গ্রুপিং এবং হ্যাভিং

ডেটা গ্রুপ এবং ফিল্টার করার জন্য group_by() এবং having() ব্যবহার করা হয়।

উদাহরণ:

$this->db->select('status, COUNT(*) as total');
$this->db->from('users');
$this->db->group_by('status');
$this->db->having('total > 10');
$query = $this->db->get();

লাইক (LIKE) ক্লজ

লাইক ব্যবহার করে ডেটা ফিল্টার করার জন্য like() মেথড ব্যবহার করা হয়।

উদাহরণ:

$this->db->select('*');
$this->db->from('users');
$this->db->like('name', 'John');
$query = $this->db->get();

Active Record এর সুবিধা

  1. কোড লেখা সহজ এবং রিডেবল।
  2. SQL ইনজেকশন প্রতিরোধ করে।
  3. ডাটাবেস ইন্ডিপেনডেন্ট পদ্ধতি।
  4. ডাইনামিক কোয়েরি তৈরি করা সহজ।
  5. কাস্টম কোয়েরি লিখার প্রয়োজন নেই।

Active Record এর ব্যবহার উপযুক্ততা

  • যদি ডাটাবেস অপারেশন দ্রুত এবং নিরাপদ করতে চান।
  • যখন কোড রিডেবল এবং মেইনটেইনেবল হওয়া প্রয়োজন।
  • যখন অ্যাপ্লিকেশন বিভিন্ন ডাটাবেসের সাথে কাজ করবে।

CodeIgniter এর Active Record প্যাটার্ন ডাটাবেস ইন্টারঅ্যাকশনের জন্য একটি কার্যকরী এবং সহজ সমাধান। এটি কোডের সুরক্ষা ও রক্ষণাবেক্ষণ সহজতর করে।

Content added By

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

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