Skip to main content

Command Palette

Search for a command to run...

Laravel-এর with() vs load() Method

Updated
2 min readView as Markdown
Laravel-এর with() vs load() Method

Laravel এ কাজ করার সময় অনেক সময় আমাদের একাধিক মডেলের মধ্যে সম্পর্ক (relationship) থাকে, যেমনঃ এক জন লেখকের অনেকগুলো পোস্ট থাকে। এই সম্পর্কিত ডেটা লোড করার জন্য আমরা Eloquent ORM এ দুইটি গুরুত্বপূর্ণ মেথড ব্যবহার করি – with() এবং load()

অনেকেই এই দুইটি মেথড নিয়ে বিভ্রান্তিতে পড়ে যান। চলুন আজ জেনে নেই এই দুইটির মূল পার্থক্য, কবে কোনটি ব্যবহার করব, এবং কিছু বাস্তব উদাহরণ।


🧠 with() কি?

with() মেথডটি Eager Loading করার জন্য ব্যবহৃত হয়। এটি মূল Query চলার আগেই রিলেশনশিপ সহ ডেটা ফেচ করে আনে।

🟢 উদাহরণ:

$posts = Post::with('author')->get();

এখানে Post মডেল থেকে সব পোস্ট আনা হচ্ছে এবং প্রতিটি পোস্টের সাথে সাথে তার author-এর তথ্যও একসাথে আনা হচ্ছে একই কুয়েরিতে

উপকারিতা: Performance ভালো, কারণ এটি N+1 Problem এড়িয়ে চলে।
সীমাবদ্ধতা: কেবলমাত্র query চলার সময় ব্যবহার করতে হবে।


🧠 load() কি?

load() হচ্ছে Lazy Eager Loading। অর্থাৎ, যখন আপনি মডেলের ডেটা ফেচ করে ফেলেছেন, তারপর আপনি চাইলে তার রিলেশনশিপ লোড করতে পারেন load() ব্যবহার করে।

🟢 উদাহরণ:

$posts = Post::all();
$posts->load('author');

এখানে প্রথমে শুধু Post গুলো আনা হয়েছে। পরে load() মেথড ব্যবহার করে প্রতিটি পোস্টের author ডেটা আলাদাভাবে লোড করা হয়েছে।

উপকারিতা: যখন আপনি ডেটা ফেচ করে ফেলেছেন, তখন প্রয়োজনে রিলেশনশিপ লোড করতে পারবেন।
সীমাবদ্ধতা: অতিরিক্ত কুয়েরি হতে পারে (N+1 সমস্যা হতে পারে), যদি সঠিকভাবে হ্যান্ডেল না করা হয়।


🔄 তুলনামূলক পার্থক্য

বিষয়with()load()
টাইপEager LoadingLazy Eager Loading
কখন কাজ করেমূল Query চলার সময়Query চলার পরে
Performanceভালো, কারণ একাধিক query হয় নাকম হতে পারে, যদি N+1 সমস্যা হয়
ব্যবহারযোগ্যতাQuery চলার সময় রিলেশন লোড করতেQuery-এর পর রিলেশন দরকার হলে

💡 কখন কোনটি ব্যবহার করবেন?

✅ যদি আপনি জানেন যে সম্পর্কিত ডেটা লাগবেই এবং আপনি মূল Query এর সময়েই তা লোড করতে চান, with() ব্যবহার করুন।

✅ যদি আপনি ডেটা নিয়ে ফেলেছেন এবং এরপর কোন নির্দিষ্ট শর্তে রিলেশন দরকার হয়, তখন load() ব্যবহার করুন।


Laravel-এর with() এবং load() উভয়ই গুরুত্বপূর্ণ Eloquent মেথড, কিন্তু এদের ব্যবহারের সময় এবং প্রভাব ভিন্ন। পারফরম্যান্স এবং কোড ক্লিন রাখার জন্য সঠিক সময় ও প্রয়োজনে সঠিক মেথড বেছে নেওয়া গুরুত্বপূর্ণ।

আশা করি এখন থেকে with()load() ব্যবহারে আপনি আর কনফিউসড হবেন না!

2 views

More from this blog

HTML-2026

HTML-কে আমরা সাধারণত ওয়েবের সবচেয়ে পুরোনো এবং স্থির প্রযুক্তিগুলোর একটি হিসেবে দেখি। CSS ও JavaScript যেখানে দ্রুত নতুন নতুন feature পাচ্ছে, HTML তুলনামূলকভাবে ধীরে পরিবর্তিত হয়। তবে ধীরে পরিবর্তন হওয়

Sep 3, 202612 min read2
HTML-2026
S

SliceTech

97 posts

Sharing basic web development tutorials.