Model হলো CodeIgniter এর একটি গুরুত্বপূর্ণ উপাদান, যা ডাটাবেস সংক্রান্ত কাজ পরিচালনা করে। এটি MVC (Model-View-Controller) আর্কিটেকচারের অংশ, যেখানে Model ডাটাবেস থেকে ডেটা রিট্রিভ, ইনসার্ট, আপডেট এবং ডিলিট করার দায়িত্ব পালন করে।
CodeIgniter-এ একটি Model তৈরি করতে আপনাকে app/Models/
ডিরেক্টরিতে একটি ক্লাস তৈরি করতে হবে।
app/Models/
ফোল্ডারে একটি নতুন PHP ফাইল তৈরি করুন। উদাহরণ: ProductModel.php
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
ফিল্ড থাকে, তাহলে এদের স্বয়ংক্রিয়ভাবে আপডেট করে।Controller থেকে Model ব্যবহার করার জন্য:
Controller এ Model ইনস্ট্যান্স তৈরি করুন:
$productModel = new \App\Models\ProductModel();
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);
}
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!";
}
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!";
}
public function deleteProduct($id) {
$productModel = new \App\Models\ProductModel();
$productModel->delete($id); // নির্দিষ্ট ডেটা ডিলিট করে
echo "Product deleted successfully!";
}
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);
}
created_at
এবং updated_at
ফিল্ডগুলো স্বয়ংক্রিয়ভাবে ব্যবহারের জন্য $useTimestamps = true
ব্যবহার করুন।Model এর মাধ্যমে ডাটাবেস সংক্রান্ত কাজগুলোকে সহজ, পরিষ্কার এবং সংগঠিতভাবে পরিচালনা করা যায়। এটি CodeIgniter এর ডেভেলপমেন্টে একটি অপরিহার্য অংশ।
Read more