लेख

Laravel Eloquent के हो, यसलाई कसरी प्रयोग गर्ने, उदाहरणहरूको साथ ट्यूटोरियल

Laravel PHP फ्रेमवर्कले Eloquent Object Relational Mapper (ORM) समावेश गर्दछ, जसले डाटाबेससँग सञ्चार गर्न अत्यन्तै सजिलो तरिका प्रदान गर्दछ। 

Laravel र Eloquent ले अनुप्रयोग र प्लेटफर्म विकासको गति बढाउन मद्दत गर्दछ, धेरै समस्याहरूको लागि पर्याप्त समाधान प्रदान गर्दछ। आवश्यकताहरू छिटो विकास, साथसाथै राम्रो संगठित, पुन: प्रयोज्य, मर्मत योग्य, र स्केलेबल कोड संग सम्बोधन गरिन्छ। 

कसरी Eloquent काम गर्दछ

विकासकर्ताहरूले काम गर्न सक्छन् Eloquent एक्टिभ मेथोड कार्यान्वयनलाई कुशलतापूर्वक प्रयोग गरी बहु डेटाबेसहरूसँग। यो एक आर्किटेक्चरल ढाँचा हो जहाँ मोडेल-दृश्य-नियन्त्रक (MVC) संरचनामा सिर्जना गरिएको मोडेल डेटाबेसमा रहेको तालिकासँग मेल खान्छ। फाइदा यो हो कि मोडेलहरूले लामो SQL प्रश्नहरू कोडिङ बिना सामान्य डाटाबेस सञ्चालनहरू प्रदर्शन गर्छन्। टेम्प्लेटहरूले तपाईंलाई तालिकाहरूमा डेटा क्वेरी गर्न र तालिकाहरूमा नयाँ रेकर्डहरू घुसाउन अनुमति दिन्छ। विभिन्न प्रणालीहरूमा चलिरहेको बहु डाटाबेसहरू सिङ्क्रोनाइज गर्ने प्रक्रियालाई सरलीकृत गरिएको छ। तपाईंले SQL प्रश्नहरू लेख्न आवश्यक छैन। तपाईले गर्नु पर्ने मात्र हो defiडाटाबेस तालिकाहरू र तिनीहरू बीचको सम्बन्धहरू समाप्त गर्नुहोस्, र Eloquent ले बाँकी काम गर्नेछ।

Laravel तयारी

Eloquent ORM को उपयोगिताको प्रशंसा गर्दै, र इकोसिस्टम बुझ्नु आवश्यक छ। सुरु गर्न चरणहरू:

  1. getcomposer.org बाट Laravel स्थापना गर्नुहोस्, यो गर्न यहाँ निर्देशनहरू पालना गर्नुहोस्
  2. सिर्जना गर्नुहोस् migration कन्सोल प्रयोग गर्दै Artisan
  3. टेम्प्लेटहरू सिर्जना गर्नुहोस् eloquent
  4. चलाउनुहोस् म seed डाटाबेस को

Artisan Console Laravel मा समावेश आदेश लाइन इन्टरफेस को नाम हो। तपाईंको अनुप्रयोग विकास गर्दा प्रयोग गर्न उपयोगी आदेशहरूको सेट प्रदान गर्दछ। यो शक्तिशाली घटक द्वारा संचालित छ 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को मोडेल को 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

यहाँ तपाइँ DB मा प्रविष्टिहरू मेटाउन, थप्न, परिमार्जन गर्न जारी राख्न सक्नुहुन्छ, त्यसपछि तिनीहरूलाई साधारण आदेशको साथ पुनर्स्थापना गर्नुहोस्।

CRUD Laravel Eloquent सँग

Laravel Eloquent object-relational mapper (ORM) सँग CRUD सञ्चालनहरूले Laravel विकासकर्ताहरूलाई धेरै डाटाबेसहरूसँग काम गर्न सजिलो बनाउँछ। यसले सिर्जना, पढ्न, अद्यावधिक, र मेटाउने (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();

यो कोड सबै विद्यार्थीहरूलाई प्राप्त हुन्छ। जबकि निम्न कोडले ID द्वारा एक विशिष्ट विद्यार्थी फेला पार्छ:

$student = विद्यार्थीहरू::find(1);

साथै, तल देखाइए अनुसार, कोडले एक विशेष विशेषताको आधारमा विद्यार्थीको खोजीलाई वर्णन गर्दछ।

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

get() विधिको लागि, यो कोडले ५ माथिको स्तर भएको विद्यार्थीलाई कसरी फेला पार्ने भनेर देखाउँछ।

$rankStudents = Student::where('student_rank', '>', 5)->get();
रेकर्ड अपडेट

Eloquent प्रयोग गरी रेकर्डहरू अद्यावधिक गर्न सजिलो छ। रेकर्ड अद्यावधिक गर्न, तपाईंले अद्यावधिक गर्न चाहनुभएको रेकर्ड फेला पार्नुहोस्, विशेषताहरू सम्पादन गर्नुहोस् र बचत गर्नुहोस्। उदाहरणका लागि, जोन डोको विद्यार्थीको ग्रेड स्तर 5 मा परिवर्तन गर्न, पहिले विद्यार्थी फेला पार्नुहोस् र त्यसपछि बचत विधि कार्यान्वयन गर्नुहोस्।

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

डाटाबेसमा पहिले नै अवस्थित मोडेलहरू अद्यावधिक गर्न बचत विधि पनि प्रयोग गर्न सकिन्छ।

रेकर्डहरू मेटाउनुहोस्

Eloquent ले यसको सजिलो रेकर्ड अपडेट गर्ने प्रक्रियाको गर्व गर्दछ, तर यसमा मेटाउनेसँग समान कथा छ। त्यहाँ दुई विकल्पहरू छन्: पुल-आउट रेकर्डहरू र मेटाउने विधि कार्यान्वयन गर्नुहोस्, वा केवल नष्ट विधि प्रयोग गर्नुहोस्। रेकर्ड फेला पार्न र मेटाउन, केवल निम्न आदेशहरू चलाउनुहोस्:

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

रेकर्ड र धेरै रेकर्डहरू मेटाउन, आदेशहरू चलाइन्छ:

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

नोट गर्नुहोस् कि नष्ट को प्यारामिटरहरू केवल प्राथमिक कुञ्जीहरू हुन् जुन मेटाउने विधिको विपरीत हो जसले कुनै पनि डाटाबेस स्तम्भ स्वीकार गर्न सक्छ।

स्तर 10 माथिका सबै विद्यार्थीहरू फेला पार्न र मेटाउन।

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
नवाचार न्यूजलेटर
नवीनता मा सबैभन्दा महत्त्वपूर्ण समाचार नछुटाउनुहोस्। तिनीहरूलाई ईमेल द्वारा प्राप्त गर्न साइन अप गर्नुहोस्।

भर्खरका लेखहरू

प्रकाशकहरू र ओपनएआईले आर्टिफिसियल इन्टेलिजेन्सद्वारा प्रशोधित सूचनाको प्रवाहलाई विनियमित गर्न सम्झौतामा हस्ताक्षर गर्छन्

गत सोमबार, फाइनान्सियल टाइम्सले OpenAI सँग सम्झौताको घोषणा गर्‍यो। FT ले आफ्नो विश्व स्तरीय पत्रकारिता लाई लाइसेन्स...

30 अप्रिल 2024

अनलाइन भुक्तानीहरू: यहाँ कसरी स्ट्रिमिङ सेवाहरूले तपाईंलाई सधैंभरि भुक्तान गर्छ

लाखौं मानिसहरूले स्ट्रिमिङ सेवाहरूको लागि भुक्तानी गर्छन्, मासिक सदस्यता शुल्क तिर्छन्। यो आम धारणा छ कि तपाईं…

29 अप्रिल 2024

Veeam ले ransomware को लागि सुरक्षा देखि प्रतिक्रिया र रिकभरी को लागी सबै भन्दा व्यापक समर्थन को सुविधा दिन्छ

Veeam द्वारा Coveware ले साइबर जबरजस्ती घटना प्रतिक्रिया सेवाहरू प्रदान गर्न जारी राख्नेछ। Coveware ले फोरेन्सिक र उपचार क्षमताहरू प्रदान गर्दछ ...

23 अप्रिल 2024

हरियो र डिजिटल क्रान्ति: कसरी पूर्वानुमानात्मक रखरखावले तेल र ग्यास उद्योगलाई रूपान्तरण गर्दैछ

अनुमानित मर्मतसम्भारले तेल र ग्यास क्षेत्रमा क्रान्तिकारी परिवर्तन गर्दैछ, बिरुवा व्यवस्थापनको लागि एक नवीन र सक्रिय दृष्टिकोणको साथ।…

22 अप्रिल 2024

आफ्नो भाषामा नवीनता पढ्नुहोस्

नवाचार न्यूजलेटर
नवीनता मा सबैभन्दा महत्त्वपूर्ण समाचार नछुटाउनुहोस्। तिनीहरूलाई ईमेल द्वारा प्राप्त गर्न साइन अप गर्नुहोस्।

हामीलाई पछ्याउनुहोस्