প্রবন্ধ

Laravel Eloquent কি, কিভাবে ব্যবহার করতে হয়, উদাহরণ সহ টিউটোরিয়াল

Laravel PHP ফ্রেমওয়ার্কে Eloquent Object Relational Mapper (ORM), যা একটি ডাটাবেসের সাথে যোগাযোগ করার একটি অত্যন্ত সহজ উপায় প্রদান করে। 

Laravel এবং Eloquent অ্যাপ্লিকেশন এবং প্ল্যাটফর্ম বিকাশের গতি বাড়াতে সাহায্য করে, বেশিরভাগ সমস্যার পর্যাপ্ত সমাধান প্রদান করে। প্রয়োজনীয়তাগুলি দ্রুত বিকাশের সাথে সাথে সুসংগঠিত, পুনঃব্যবহারযোগ্য, রক্ষণাবেক্ষণযোগ্য এবং মাপযোগ্য কোডের সাথে সমাধান করা হয়। 

কিভাবে বাগ্মী কাজ করে

ডেভেলপাররা কাজ করতে পারেন Eloquent একাধিক ডাটাবেসের সাথে দক্ষতার সাথে একটি ActiveMethod বাস্তবায়ন ব্যবহার করে। এটি একটি আর্কিটেকচারাল প্যাটার্ন যেখানে মডেল-ভিউ-কন্ট্রোলার (MVC) কাঠামোতে তৈরি মডেলটি ডাটাবেসের একটি টেবিলের সাথে মিলে যায়। সুবিধা হল যে মডেলগুলি দীর্ঘ এসকিউএল কোয়েরি কোডিং ছাড়াই সাধারণ ডাটাবেস ক্রিয়াকলাপ সম্পাদন করে। টেমপ্লেট আপনাকে টেবিলে ডেটা জিজ্ঞাসা করতে এবং টেবিলে নতুন রেকর্ড সন্নিবেশ করার অনুমতি দেয়। বিভিন্ন সিস্টেমে চলমান একাধিক ডাটাবেস সিঙ্ক্রোনাইজ করার প্রক্রিয়া সহজ করা হয়েছে। আপনাকে SQL প্রশ্ন লিখতে হবে না। আপনাকে যা করতে হবে তা হল defiডাটাবেস টেবিল এবং তাদের মধ্যে সম্পর্ক শেষ করুন, এবং Eloquent বাকি কাজ করবে।

লারাভেল প্রস্তুতি

Eloquent ORM-এর উপযোগিতার প্রশংসা করা এবং ইকোসিস্টেম বোঝা আবশ্যক। শুরু করার পদক্ষেপ:

  1. getcomposer.org থেকে Laravel ইনস্টল করুন, এটি করতে এখানে নির্দেশাবলী অনুসরণ করুন
  2. সৃষ্টি migration কনসোল ব্যবহার করে Artisan
  3. টেমপ্লেট তৈরি করুন eloquent
  4. চালান i seed ডাটাবেসের

Artisan Console লারাভেলে অন্তর্ভুক্ত কমান্ড লাইন ইন্টারফেসের নাম। আপনার অ্যাপ্লিকেশন বিকাশ করার সময় ব্যবহার করার জন্য দরকারী কমান্ডের একটি সেট প্রদান করে। এটি শক্তিশালী উপাদান দ্বারা চালিত হয় Symfony Console.

সমস্ত উপলব্ধ আর্টিসান কমান্ডের একটি তালিকা দেখতে, আপনি তালিকা কমান্ড ব্যবহার করতে পারেন:

php artisan list

সমস্ত কমান্ড এর আর্গুমেন্ট এবং বিকল্পগুলির একটি সংক্ষিপ্ত বিবরণ সহ আসে। এটি একটি "সহায়তা" স্ক্রিনে দেখানো হয়েছে। একটি হেল্প স্ক্রীন প্রদর্শন করতে, শুধু দেখানো হিসাবে "সহায়তা" সহ কমান্ড নামের আগে:

php artisan help migrate

Migration

স্থানান্তর একটি ডাটাবেস ব্যবস্থাপনা প্রক্রিয়া পরিবর্তে PHP লিখে SQL. ডাটাবেসে সংস্করণ নিয়ন্ত্রণ যোগ করার একটি উপায় প্রদান করে। 

একটি মাইগ্রেশন তৈরি করতে, শুধুমাত্র নিম্নলিখিত কমান্ডটি চালান:

php artisan make:migration create_student_records

এটি মাইগ্রেশন ফাইল তৈরি করে। আপনার পাঠ্য সম্পাদকে, ফোল্ডারে আপনার তৈরি করা ফাইলটি খুলুন database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

কোডটি একই নামের একটি ক্লাস'create student records', এবং দুটি পদ্ধতি আছে: আপ এবং ডাউন। আপ পদ্ধতি ডাটাবেস পরিবর্তন করা উচিত; তাই যখনই আপনি আপনার ডাটাবেস স্থানান্তর করবেন, আপ পদ্ধতিতে যেকোন কোড নির্বাহ করা হবে। অন্যদিকে, ডাউন পদ্ধতিতে সেই ডাটাবেস পরিবর্তনগুলি রোল ব্যাক করা উচিত; তাই যখনই আপনি চালান rollback ডেলা migration, ডাউন পদ্ধতিটি পূর্বাবস্থায় ফিরিয়ে আনতে হবে যা আপ পদ্ধতিটি করেছে। পদ্ধতির ভিতরে up টেবিল তৈরি এবং ম্যানিপুলেট করতে ব্যবহৃত স্কিমা নির্মাতা আছে। আপনি আপনার কিছু মাইগ্রেশন বাতিল করলে কি হবে? আপনাকে যা করতে হবে তা হল নিম্নলিখিত কমান্ডটি বাস্তবায়ন করা:

php artisan migrate:rollback

এবং তিনি শেষটি সংগ্রহ করবেন migration যা বাস্তবায়িত হয়েছে। এছাড়াও, আপনি চালানোর মাধ্যমে ডাটাবেস সম্পূর্ণরূপে পুনরুদ্ধার করতে পারেন:

php artisan migrate:reset

এটি আপনার সমস্ত মাইগ্রেশন বাতিল করবে৷

Defiমডেলের tion Eloquent

ডাটাবেস মাইগ্রেশন সম্পূর্ণ হওয়ার পর, পরবর্তী প্রক্রিয়াটি হল seedingEloquent থেকে খেলায় আসে seeding আমাদের ডাটাবেসে রেকর্ড সন্নিবেশ করাচ্ছে। তাই আপনাকে ডাটাবেস তৈরি করার আগে টেমপ্লেট তৈরি করতে হবে। প্রতিটি ডাটাবেস টেবিলের একটি সংশ্লিষ্ট মডেল থাকে যা সেই টেবিলের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। টেমপ্লেটগুলি আপনাকে আপনার টেবিলে ডেটা অনুসন্ধান করতে দেয়, সেইসাথে টেবিলে নতুন রেকর্ড সন্নিবেশ করতে দেয়। মডেলটি ইনস্ট্যান্ট করার সবচেয়ে সহজ উপায় হল নিম্নলিখিত কমান্ডটি ব্যবহার করা:

php artisan make:model Student
একটি টেমপ্লেটের একটি উদাহরণ নীচে দেখানো হয়েছে Student, যা আমাদের ছাত্রের ডাটাবেস টেবিল থেকে তথ্য পুনরুদ্ধার এবং সংরক্ষণ করতে ব্যবহার করা যেতে পারে:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

আপনি যখন একটি মডেল তৈরি করেন এবং একই সময়ে আপনি একটি ডাটাবেস মাইগ্রেশন তৈরি করতে চান, আপনি বিকল্পটি ব্যবহার করতে পারেন –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

সিডার

সামগ্রিকভাবে সিডার হল ক্লাসের একটি বিশেষ সেট যা আমাদেরকে আমাদের ডাটাবেসকে একই ডেটা দিয়ে বারবার পপুলেট করতে দেয়। আমরা নিম্নলিখিত কমান্ড প্রয়োগ করি:

php artisan make:seeder StudentsRecordSeeder

টেক্সট এডিটরে, বীজ ফোল্ডারের অধীনে, ফাইলের নাম সহ নতুন তৈরি ফাইলটি খুলুন: StudentsRecordSeeder.php. আপনি দেখতে পাচ্ছেন এটি একটি একক পদ্ধতির সাথে একটি খুব সাধারণ ক্লাস run()।

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

কোডটি একটি কনসোল কমান্ড ক্লাসের চারপাশে একটি মোড়ক, বিশেষভাবে এর কাজটি সাহায্য করার জন্য নির্মিত seeding. কোডটি সম্পাদনা করুন এবং তারপরে এটি সংরক্ষণ করুন।

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.
public function run()
{
    echo 'Seeding!';
}

এবং টার্মিনালে যাচ্ছে:

php artisan db:seed --class=StudentsRecordSeeder

এখন আপনি কিছু এন্ট্রি দিয়ে টেবিলটি পূরণ করতে পারেন এবং চালাতে পারেন:

php artisan db:seed --class=class=StudentsRecordSeeder

এখানে আপনি ডিবি-তে এন্ট্রিগুলি মুছতে, যোগ করতে, সংশোধন করতে পারেন, তারপরে একটি সাধারণ কমান্ড দিয়ে পুনরুদ্ধার করতে পারেন।

CRUD সঙ্গে Laravel Eloquent

Laravel Eloquent অবজেক্ট-রিলেশনাল ম্যাপার (ORM) এর সাথে CRUD অপারেশনগুলি লারাভেল ডেভেলপারদের একাধিক ডাটাবেসের সাথে কাজ করা সহজ করে তোলে। এটি তৈরি, পড়া, আপডেট এবং মুছে ফেলার (CRUD) ক্রিয়াকলাপ সম্পাদন করে এবং অবজেক্ট মডেলগুলিকে ডাটাবেস টেবিলে ম্যাপ করে। CRUD অপারেশনের জন্য প্রয়োজনীয় সমস্ত ডাটাবেস মিথস্ক্রিয়া পরিচালনা করে।

রেকর্ড সৃষ্টি

আপনি ডাটাবেসে একটি নতুন রেকর্ড সন্নিবেশ করার জন্য ::create পদ্ধতি ব্যবহার করতে পারেন।

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

উপরে দেখানো সহজ সৃষ্টি পদ্ধতি ছাড়াও, আপনি একটি নতুন অবজেক্ট তৈরি করতে পারেন এবং এটিকে বিভিন্ন বৈশিষ্ট্য দিতে পারেন। তারপর, আপনি save() ফাংশন কল করতে পারেন এবং কোড চালাতে পারেন। পদ্ধতি পছন্দ firstOrCreate() বা firstOrNew() রেকর্ড তৈরি করার জন্য অন্যান্য বিকল্প। এগুলি আপনাকে নির্দিষ্ট গুণাবলী সহ একজন ছাত্র খুঁজে পেতে অনুমতি দেবে; যদি সেই ছাত্রটি খুঁজে না পাওয়া যায়, আপনি হয় এটি ডাটাবেসে তৈরি করবেন বা একটি নতুন উদাহরণ তৈরি করবেন।

রেকর্ড পড়া

Eloquent ORM ব্যবহার করে, আপনি আপনার ডাটাবেসে রেকর্ড খুঁজে পেতে পারেন। প্রশ্নগুলি সহজভাবে তৈরি করা হয় এবং একটি মসৃণ প্রবাহ অফার করে। বিবৃতি তৈরি করতে::where, আপনি পদ্ধতি ব্যবহার করবেন get() এবং first()। পদ্ধতি first() শুধুমাত্র একটি রেকর্ড ফেরত দেবে, যখন পদ্ধতি get() রেকর্ডের একটি লুপযোগ্য অ্যারে ফিরিয়ে দেবে। এছাড়াও, পদ্ধতি find() প্রাথমিক কীগুলির একটি অ্যারের সাথে ব্যবহার করা যেতে পারে, যা মিলিত রেকর্ডের একটি সংগ্রহ ফিরিয়ে দেবে। এখানে কিছু উদাহরণঃ:

$student = Students::all();

এই কোড সব ছাত্র পায়. যখন নিম্নলিখিত কোডটি আইডি দ্বারা একটি নির্দিষ্ট ছাত্রকে খুঁজে পায়:

$student = ছাত্র:: খুঁজুন(1);

এছাড়াও, নীচে দেখানো হিসাবে, কোডটি একটি নির্দিষ্ট বৈশিষ্ট্যের উপর ভিত্তি করে একজন শিক্ষার্থীর জন্য অনুসন্ধানের বর্ণনা দেয়।

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

get() পদ্ধতির জন্য, এই কোডটি দেখায় কিভাবে 5-এর উপরে স্তরের একজন শিক্ষার্থীকে খুঁজে বের করতে হয়।

$rankStudents = Student::where('student_rank', '>', 5)->get();
রেকর্ড আপডেট

Eloquent ব্যবহার করে রেকর্ড আপডেট করা ঠিক ততটাই সহজ। একটি রেকর্ড আপডেট করতে, আপনি যে রেকর্ডটি আপডেট করতে চান তা খুঁজুন, বৈশিষ্ট্যগুলি সম্পাদনা করুন এবং সংরক্ষণ করুন৷ উদাহরণস্বরূপ, জন ডো-এর ছাত্রের গ্রেড স্তর 5 এ পরিবর্তন করতে, প্রথমে ছাত্রটিকে খুঁজুন এবং তারপর সংরক্ষণ পদ্ধতিটি কার্যকর করুন।

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

ডাটাবেসে ইতিমধ্যে বিদ্যমান মডেলগুলিকে আপডেট করতে সংরক্ষণ পদ্ধতিটিও ব্যবহার করা যেতে পারে।

রেকর্ড মুছুন

বাগ্মী তার সহজ রেকর্ড আপডেট করার প্রক্রিয়া নিয়ে গর্ব করে, তবে এটি মুছে ফেলার সাথে একই গল্প রয়েছে। দুটি বিকল্প আছে: পুল-আউট রেকর্ড এবং ডিলিট পদ্ধতি চালান, অথবা কেবল ধ্বংস পদ্ধতি ব্যবহার করুন। একটি রেকর্ড খুঁজে পেতে এবং মুছে ফেলতে, কেবল নিম্নলিখিত কমান্ডগুলি চালান:

$student = Students::find(1);
$student->delete();

একটি রেকর্ড এবং একাধিক রেকর্ড মুছে ফেলার জন্য, কমান্ড চালানো হয়:

Students::destroy(1);
Students::destroy(1, 2, 3);

লক্ষ্য করুন যে ধ্বংসের পরামিতিগুলি কেবলমাত্র প্রাথমিক কী যা মুছে ফেলার পদ্ধতির বিপরীতে যা যে কোনও ডাটাবেস কলাম গ্রহণ করতে পারে।

10 স্তরের উপরে সমস্ত ছাত্রদের খুঁজে বের করতে এবং মুছে ফেলতে।

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

সাম্প্রতিক নিবন্ধ

ক্যাটানিয়া পলিক্লিনিকে অ্যাপল দর্শকের সাথে অগমেন্টেড রিয়েলিটিতে উদ্ভাবনী হস্তক্ষেপ

অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...

3 মে 2024

শিশুদের জন্য রঙিন পৃষ্ঠাগুলির উপকারিতা - সব বয়সের জন্য একটি জাদু বিশ্ব

রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…

2 মে 2024

ভবিষ্যত এখানে: শিপিং শিল্প কীভাবে বৈশ্বিক অর্থনীতিতে বিপ্লব ঘটাচ্ছে

নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...

1 মে 2024

প্রকাশকরা এবং OpenAI কৃত্রিম বুদ্ধিমত্তা দ্বারা প্রক্রিয়াকৃত তথ্যের প্রবাহ নিয়ন্ত্রণ করতে চুক্তি স্বাক্ষর করে

গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...

30 এপ্রিল 2024

আপনার ভাষায় উদ্ভাবন পড়ুন

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

আমাদের অনুসরণ