Laravel: CRUD অপারেশন — সম্পূর্ণ টিউটোরিয়াল বাংলায় | Part 10

Abu Sayed
3 min readFeb 20, 2024

--

Laravel দিয়ে CRUD অপারেশন কিভাবে করতে হয় সে সম্পর্কে সম্পূর্ণ টিউটোরিয়াল। Migration, Model, Controller, Routes সহ সব ডিটেলের সাথে বাংলায় শিখুন।

ভাই, তুমি Laravel শিখতে শুরু করেছ বলে অনুমান করছি। Laravel শিখতে গেলে CRUD (Create, Read, Update, Delete) অপারেশন শিখা খুবই জরুরি। তাই আজ আমি তোমাকে Laravel দিয়ে সম্পূর্ণ CRUD কিভাবে করতে হয় সেটা শিখিয়ে দেবো। ধরে নিচ্ছি তোমার পূর্ব-জ্ঞান রয়েছে Laravel Route, Controller, Model, Migration, Eloquent ORM সম্পর্কে। তাহলে শুরু করি বলেই।

Laravel CRUD করার ধাপগুলো

প্রথমে আমরা Laravel CRUD করার জন্য প্রয়োজনীয় ধাপগুলো দেখি -

১. Migration তৈরি করা

প্রথমে আমাদের মডেলের জন্য একটি migration ফাইল তৈরি করতে হবে। এতে মডেলের ক্ষেত্রগুলো ডিফাইন করতে হবে।

php artisan make:migration create_posts_table

২. Model তৈরি করা

পরে সেই মডেলের জন্য একটি Eloquent Model তৈরি করতে হবে।

php artisan make:model Post

৩. Controller তৈরি করা

পরে সেই মডেলের CRUD অপারেশন Controlller-এ লিখতে হবে। সেজন্য একটি Controller তৈরি করতে হবে।

php artisan make:controller PostController

৪. Route ডিফাইন করা

পরে সেই Controller এর মেথডগুলো কোন Route এ কল করবে সেটা ডিফাইন করতে হবে routes ফাইলে।

Route::get('/posts', [PostController::class, 'index']); 
Route::get('/posts/create', [PostController::class, 'create']);// ...

৫. CRUD মেথড লিখা

শেষে Controller-এ create, read, update, delete এর মেথডগুলো লিখে দিতে হবে।

public function index()
{
// Show all posts
}
public function create() 
{
// Show form to create post
}
public function store(Request $request)
{
// Create post
}
public function edit($id)
{
// Show form to edit post
}
public function update(Request $request, $id)
{
// Update post
}
public function destroy($id)
{
// Delete post
}

এভাবে মূল ধাপগুলো অনুসরণ করে আমরা Laravel এ সম্পূর্ণ CRUD করতে পারি। এখন আসুন প্রতিটি ধাপকে বিস্তারিতভাবে দেখি।

১. Migration তৈরি করা

প্রথমে posts টেবিলের জন্য migration তৈরি করি।

php artisan make:migration create_posts_table

এখন create_posts_table migration এ ক্ষেত্রগুলো ডিফাইন করি।

Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});

এখানে id, title, body এবং timestamps ক্ষেত্র ডিফাইন করেছি।

এখন মাইগ্রেশন রান করে টেবিল তৈরি করি।

php artisan migrate

২. Model তৈরি করা

Post মডেল তৈরি করি।

php artisan make:model Post

মডেলে posts টেবিলের সাথে কানেক্ট করে দিই।

class Post extends Model
{
protected $table = 'posts';
}

৩. Controller তৈরি করা

PostController তৈরি করি।

php artisan make:controller PostController

৪. Routes ডিফাইন করা

// Show all posts
Route::get('/posts', [PostController::class, 'index']);
// Show form to create post
Route::get('/posts/create', [PostController::class, 'create']);
// Store new post
Route::post('/posts', [PostController::class, 'store']);
// Show single post
Route::get('/posts/{id}', [PostController::class, 'show']);
// Show form to edit post
Route::get('/posts/{id}/edit', [PostController::class, 'edit']);
// Update post
Route::put('/posts/{id}', [PostController::class, 'update']);
// Delete post
Route::delete('/posts/{id}', [PostController::class, 'destroy']);

৫. CRUD Controller Methods

শেষে আসল CRUD অপারেশন গুলো লিখি।

// Show all posts
public function index()
{
$posts = Post::all();

return view('posts.index', compact('posts'));
}
// Show form to create post
public function create()
{
return view('posts.create');
}
// Create post
public function store(Request $request)
{
$post = Post::create($request->only('title', 'body'));

return redirect()->route('posts.show', $post->id);
}
// Show single post
public function show($id)
{
$post = Post::findOrFail($id);

return view('posts.show', compact('post'));
}
// Show form to edit post
public function edit($id)
{
$post = Post::findOrFail($id);

return view('posts.edit', compact('post'));
}
// Update post
public function update(Request $request, $id)
{
$post = Post::findOrFail($id);

$post->update($request->only('title', 'body'));
return redirect()->route('posts.show', $post->id);
}
// Delete post
public function destroy($id)
{
Post::destroy($id);

return redirect()->route('posts.index');
}

এভাবে সম্পূর্ণ CRUD করা যায় Laravel দিয়ে। আশা করি বোঝানোর চেষ্টায় আমি সফল হয়েছি। যদি কোথাও বুঝতে অসুবিধা হয় জানাতে ভুলিও না।

--

--

Abu Sayed

Bangladeshi Full Stack Web Dev, Sys Admin & DevOps Engineer. Skills: Data analysis, SQL, Kubernetes. Python, PHP & Laravel. Me on: bd.linkedin.com/in/imabusayed