DEV Community

Cover image for Laravel Eloquent ORM in Bangla Part-4 (Retrieving Single Models / Aggregates)
Sontus Chandra Anik
Sontus Chandra Anik

Posted on

Laravel Eloquent ORM in Bangla Part-4 (Retrieving Single Models / Aggregates)

Laravel Eloquent-এ Retrieving Single Models / Aggregates ফিচারটি ডাটাবেস থেকে নির্দিষ্ট একটি রেকর্ড বা অ্যাগ্রিগেট ভ্যালু (যেমন: কাউন্ট, ম্যাক্স, মিন, এভারেজ) রিট্রিভ করার জন্য ব্যবহৃত হয়। এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনাকে একটি নির্দিষ্ট ডেটা বা ডেটা সেটের সংক্ষিপ্ত পরিসংখ্যান প্রয়োজন।

Retrieving Single Models

১. find() মেথড

প্রাইমারি কী-এর মাধ্যমে নির্দিষ্ট রেকর্ড রিট্রিভ করতে ব্যবহার করা হয়।

use App\Models\Post;

// প্রাইমারি কী ১-এর রেকর্ড
$post = Post::find(1);

if ($post) {
    echo $post->title;
}

Enter fullscreen mode Exit fullscreen mode

২. findOrFail() মেথড

রেকর্ড না পেলে 404 HTTP Exception ছুড়ে দেয়।

$post = Post::findOrFail(1);

Enter fullscreen mode Exit fullscreen mode

৩. first() মেথড

প্রথম রেকর্ড রিট্রিভ করতে ব্যবহার করা হয়।

$post = Post::where('status', 'published')->first();

if ($post) {
    echo $post->title;
}

Enter fullscreen mode Exit fullscreen mode

৪. firstOrFail() মেথড

প্রথম রেকর্ড না পেলে 404 HTTP Exception ছুড়ে দেয়।

$post = Post::where('status', 'published')->firstOrFail();

Enter fullscreen mode Exit fullscreen mode

৫. value() মেথড

কোনো নির্দিষ্ট কলামের একক ভ্যালু রিট্রিভ করতে ব্যবহৃত হয়।

$title = Post::where('id', 1)->value('title');

Enter fullscreen mode Exit fullscreen mode

৬. pluck() মেথড

নির্দিষ্ট কলামের একাধিক ভ্যালু রিটার্ন করতে ব্যবহার করা হয়।

$titles = Post::where('status', 'published')->pluck('title');

Enter fullscreen mode Exit fullscreen mode

Retrieving Aggregates

Eloquent এর মাধ্যমে অ্যাগ্রিগেট মেথডগুলো সরাসরি ডাটাবেস থেকে ডেটা গণনা করতে ব্যবহৃত হয়। নিচে কিছু গুরুত্বপূর্ণ মেথড দেখানো হলো:

১. count()

ডাটাবেসে রেকর্ডের সংখ্যা গণনা করে।

$postCount = Post::count();

Enter fullscreen mode Exit fullscreen mode

২. max()

কোনো নির্দিষ্ট কলামের সর্বোচ্চ মান রিটার্ন করে।

$maxViews = Post::max('views');

Enter fullscreen mode Exit fullscreen mode

৩. min()

কোনো নির্দিষ্ট কলামের সর্বনিম্ন মান রিটার্ন করে।

$minViews = Post::min('views');

Enter fullscreen mode Exit fullscreen mode

৪. avg()

কোনো নির্দিষ্ট কলামের গড় মান রিটার্ন করে।

$averageViews = Post::avg('views');

Enter fullscreen mode Exit fullscreen mode

৫. sum()

কোনো নির্দিষ্ট কলামের মোট যোগফল রিটার্ন করে।

$totalViews = Post::sum('views');

Enter fullscreen mode Exit fullscreen mode

Combination of Single Models and Aggregates

আপনি একসাথে অ্যাগ্রিগেট এবং রেকর্ড ফিল্টারিং মেথড ব্যবহার করতে পারেন।

$totalPublishedPosts = Post::where('status', 'published')->count();

$maxPublishedViews = Post::where('status', 'published')->max('views');

Enter fullscreen mode Exit fullscreen mode

উদাহরণ: Single Record এবং Aggregates একত্রে ব্যবহার

use App\Models\Post;

// প্রথম Published পোস্ট রিট্রিভ করুন
$post = Post::where('status', 'published')->first();

// যদি পোস্ট পাওয়া যায়
if ($post) {
    echo "Title: " . $post->title;
}

// Published পোস্টের মোট সংখ্যা
$totalPublishedPosts = Post::where('status', 'published')->count();

// Published পোস্টগুলোর সর্বোচ্চ ভিউ
$maxPublishedViews = Post::where('status', 'published')->max('views');

echo "Total Published Posts: $totalPublishedPosts";
echo "Maximum Views for Published Posts: $maxPublishedViews";

Enter fullscreen mode Exit fullscreen mode

Top comments (0)