Database Tutorials ORM Object থেকে JSON এ Data Serialize করা গাইড ও নোট

295

Laravel এর ORM (Eloquent) ব্যবহার করে ডেটাবেস থেকে ডেটা অ্যাক্সেস এবং ম্যানেজ করা যায় খুবই সহজে। কখনও কখনও আমাদের ডেটাবেস থেকে আনা ডেটা JSON ফরম্যাটে পাঠাতে হয়, যেমন API রেসপন্স হিসেবে। Laravel এর Eloquent ORM এ Object কে JSON এ রূপান্তরিত করা খুবই সহজ। Laravel অটোমেটিক্যালি toJson() বা json_encode() ব্যবহার করে Object গুলোকে JSON এ রূপান্তরিত করতে পারে।

এখানে আমরা দেখব কিভাবে Eloquent ORM এর Object থেকে JSON এ Data Serialize করা যায়:


Eloquent Object থেকে JSON এ রূপান্তর

Laravel এর toJson() মেথড এবং json_encode() ফাংশন ব্যবহার করে ORM object কে JSON এ রূপান্তর করা সম্ভব।


১. toJson() মেথড ব্যবহার

Eloquent model object থেকে JSON তৈরি করতে toJson() মেথড ব্যবহার করা হয়। এটি খুবই সাধারণ এবং প্রাথমিক পদ্ধতি।

use App\Models\User;

$user = User::find(1);

// ORM Object কে JSON এ রূপান্তর করা
$jsonData = $user->toJson();

return response()->json($jsonData);

এখানে, $user->toJson() Eloquent model object (User) কে JSON ফরম্যাটে রূপান্তরিত করে।


২. json_encode() ব্যবহার

Laravel এর json_encode() ফাংশন ব্যবহার করেও ORM object কে JSON এ রূপান্তর করা যায়। এই পদ্ধতিতে আপনি ম্যানুয়ালি json_encode() ফাংশন ব্যবহার করবেন।

use App\Models\User;

$user = User::find(1);

// ORM Object কে JSON এ রূপান্তর করা
$jsonData = json_encode($user);

return response()->json($jsonData);

এটি একই রকম কাজ করবে, তবে Laravel এর toJson() মেথডের মতো এটি পুরো ORM object এর ডেটা JSON এ রূপান্তর করবে না।


৩. API রেসপন্স হিসেবে JSON ফেরত দেওয়া

Laravel এর রিস্পন্স ফ্যাসেড ব্যবহার করে API রেসপন্স হিসেবে JSON ফেরত দেওয়া যায়। এটি সবচেয়ে সহজ এবং Laravel এ স্ট্যান্ডার্ড পদ্ধতি।

use App\Models\User;

$user = User::find(1);

// API রেসপন্স হিসেবে JSON ফেরত দেওয়া
return response()->json($user);

এখানে, Laravel স্বয়ংক্রিয়ভাবে $user object কে JSON ফরম্যাটে রূপান্তর করবে এবং API রেসপন্স হিসেবে পাঠাবে।


৪. JSON ফরম্যাট কাস্টমাইজ করা

Laravel এ আপনি JSON রেসপন্স কাস্টমাইজও করতে পারেন। উদাহরণস্বরূপ, যদি আপনি কিছু বিশেষ অ্যাট্রিবিউট ছাড়া JSON রেসপন্স পাঠাতে চান, তাহলে toArray() মেথড ব্যবহার করতে পারেন এবং এরপর json_encode() অথবা response()->json() ব্যবহার করে রেসপন্স পাঠাতে পারেন।

use App\Models\User;

$user = User::find(1);

// কাস্টম JSON রেসপন্স
$userData = $user->toArray();
unset($userData['password']); // password বাদ দেয়া হয়েছে

return response()->json($userData);

এখানে, toArray() ব্যবহার করা হয়েছে এবং password ফিল্ড বাদ দেয়া হয়েছে JSON রেসপন্স থেকে।


৫. Eloquent Resource Class ব্যবহার করা

Laravel ৫.৫ এবং পরবর্তী সংস্করণে, Eloquent Resource ক্লাস ব্যবহার করে JSON রেসপন্স কাস্টমাইজ করা যায়। এটি বিশেষ করে API ডেভেলপমেন্টের জন্য খুবই সহায়ক।

প্রথমে php artisan make:resource কমান্ড দিয়ে একটি রিসোর্স ক্লাস তৈরি করতে হবে:

php artisan make:resource UserResource

এরপর, UserResource ক্লাসে ডেটা কাস্টমাইজ করতে পারবেন:

use App\Models\User;
use App\Http\Resources\UserResource;

$user = User::find(1);

// কাস্টম JSON রেসপন্স
return new UserResource($user);

এখানে UserResource ক্লাসে কাস্টম লজিক প্রয়োগ করা যাবে।


সারাংশ

  • Laravel এ Eloquent ORM Object থেকে JSON এ রূপান্তর করতে toJson() বা json_encode() ব্যবহার করা যায়।
  • Laravel এর response()->json() মেথড ব্যবহার করে সহজেই API রেসপন্স হিসেবে JSON ফিরিয়ে দেয়া যায়।
  • যদি JSON রেসপন্স কাস্টমাইজ করতে চান, তবে toArray() মেথড ব্যবহার করে ডেটা ম্যানিপুলেট করা যায়।
  • Eloquent Resource ক্লাস ব্যবহার করে আরও শক্তিশালী এবং কাস্টম JSON রেসপন্স তৈরি করা সম্ভব।

এটি ছিল Laravel এ ORM Object থেকে JSON এ Data Serialize করার প্রক্রিয়া।

Content added By
Promotion

Are you sure to start over?

Loading...