ፅሁፎች

Laravel Eloquent ምንድን ነው ፣ እንዴት እንደሚጠቀሙበት ፣ ከምሳሌዎች ጋር አጋዥ ስልጠና

የላራቬል ፒኤችፒ ማዕቀፍ ከዳታቤዝ ጋር ለመነጋገር እጅግ በጣም ቀላል የሆነውን የEloquent Object Relational Mapper (ORM) ያካትታል። 

ላራቬል እና ኤሎኩንት አፕሊኬሽንን እና የመድረክን እድገትን ያፋጥናል, ለአብዛኛዎቹ ችግሮች በቂ መፍትሄ ይሰጣል. መስፈርቶች ፈጣን እድገት፣ እንዲሁም በሚገባ በተደራጀ፣ በድጋሚ ጥቅም ላይ ሊውሉ የሚችሉ፣ ሊጠገኑ የሚችሉ እና ሊሰፋ በሚችል ኮድ ይፈታሉ። 

አንደበተ ርቱዕ እንዴት እንደሚሰራ

ገንቢዎች ሊሰሩ ይችላሉ Eloquent የActiveMethod ትግበራን በመጠቀም ከበርካታ የውሂብ ጎታዎች ጋር በብቃት። በሞዴል-እይታ-ተቆጣጣሪ (ኤምቪሲ) መዋቅር ውስጥ የተፈጠረው ሞዴል በመረጃ ቋቱ ውስጥ ካለው ሰንጠረዥ ጋር የሚዛመድበት የሕንፃ ንድፍ ነው። ጥቅሙ ሞዴሎቹ ረጅም የ SQL መጠይቆችን ሳያስቀምጡ የተለመዱ የውሂብ ጎታ ስራዎችን ያከናውናሉ. አብነቶች በሰንጠረዦች ውስጥ ውሂብ እንዲጠይቁ እና አዲስ መዝገቦችን ወደ ጠረጴዛዎች እንዲያስገቡ ያስችሉዎታል። በተለያዩ ስርዓቶች ላይ የሚሰሩ ብዙ የውሂብ ጎታዎችን የማመሳሰል ሂደት ቀላል ነው. የ SQL መጠይቆችን መጻፍ አያስፈልግዎትም። ማድረግ ያለብህ ብቻ ነው። defiየመረጃ ቋቱን ሰንጠረዦች እና በመካከላቸው ያለውን ግንኙነት ይጨርሱ እና ኤሎክየንት ቀሪውን ስራ ይሰራል።

የላራቬል ዝግጅት

የEloquent ORM አገልግሎትን ማድነቅ እና ስነ-ምህዳሩን መረዳት የግድ ነው። ለመጀመር ደረጃዎች፡-

  1. Laravel ን ከ getcomposer.org ይጫኑ፣ ይህንን ለማድረግ እዚህ ያሉትን መመሪያዎች ይከተሉ
  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 ጋር

CRUD ከLaravel Eloquent object-relational mapper (ORM) ጋር የሚሰራው የላራቬል ገንቢዎች ከበርካታ የውሂብ ጎታዎች ጋር መስራት ቀላል ያደርገዋል። የመፍጠር፣ የማንበብ፣ የማዘመን እና የመሰረዝ (CRUD) ስራዎችን ያከናውናል፣ እና የነገር ሞዴሎችን ወደ የውሂብ ጎታ ሰንጠረዦች ያዘጋጃል። ለCRUD ክወናዎች የሚያስፈልጉትን ሁሉንም የውሂብ ጎታ ግንኙነቶችን ይቆጣጠራል።

መዝገቦችን መፍጠር

አዲስ መዝገብ ወደ ዳታቤዝ ለማስገባት የ :: ፍጠር ዘዴን መጠቀም ትችላለህ።

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

ከላይ ከሚታየው ቀላል የመፍጠር ዘዴ በተጨማሪ አዲስ ነገር መፍጠር እና የተለያዩ ባህሪያትን መስጠት ይችላሉ. ከዚያ ወደ ሴቭ() ተግባር ደውለው ኮዱን ማስኬድ ይችላሉ። ዘዴዎች እንደ firstOrCreate() ወይም firstOrNew() መዝገቦችን ለመፍጠር ሌሎች አማራጮች ናቸው። እነዚህ የተወሰኑ ባህሪያት ያለው ተማሪ እንዲያገኙ ያስችልዎታል; ያ ተማሪ ካልተገኘ በመረጃ ቋቱ ውስጥ ይፈጥራሉ ወይም አዲስ ምሳሌን ያፋጥኑታል።

የንባብ መዝገቦች

Eloquent ORMን በመጠቀም በመረጃ ቋትዎ ውስጥ መዝገቦችን ማግኘት ይችላሉ። ጥያቄዎቹ በቀላሉ የተገነቡ ናቸው እና ለስላሳ ፍሰት ይሰጣሉ. መግለጫዎችን ለመፍጠር::where, ዘዴዎቹን ትጠቀማለህ get() እና first() ዘዴው first() ዘዴው እያለ አንድ መዝገብ ብቻ ይመልሳል get() ሊቀለበስ የሚችል መዝገቦችን ይመልሳል። እንዲሁም, ዘዴው find() ከተደራራቢ ዋና ቁልፎች ጋር መጠቀም ይቻላል፣ ይህም የተዛማጅ መዝገቦችን ስብስብ ይመልሳል። አንዳንድ ምሳሌዎች እነሆ፡-

$student = Students::all();

ይህ ኮድ ሁሉንም ተማሪዎች ይቀበላል. የሚከተለው ኮድ አንድ የተወሰነ ተማሪ በመታወቂያ ሲያገኝ፡

$student = ተማሪዎች :: አግኝ (1);

እንዲሁም፣ ከታች እንደሚታየው፣ ኮዱ በአንድ የተወሰነ ባህሪ ላይ በመመስረት ተማሪን መፈለግን ይገልጻል።

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

ለግጥ() ዘዴ፣ ይህ ኮድ ከ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
የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

የቅርብ ጊዜ ጽሁፎች

በAugmented Reality ውስጥ የፈጠራ ጣልቃገብነት፣ በ Catania Polyclinic ውስጥ ከአፕል መመልከቻ ጋር

የአፕል ቪዥን ፕሮ የንግድ ማሳያን በመጠቀም የ ophthalmoplasty ቀዶ ጥገና በካታኒያ ፖሊክሊን…

3 May 2024

የሕጻናት ገጾችን የማቅለም ጥቅሞች - ለሁሉም ዕድሜዎች አስማታዊ ዓለም

ጥሩ የሞተር ክህሎቶችን በቀለም ማዳበር ልጆችን እንደ መጻፍ ላሉ ውስብስብ ክህሎቶች ያዘጋጃል። ወደ ቀለም…

2 May 2024

የወደፊቱ ጊዜ እዚህ አለ፡ የመርከብ ኢንዱስትሪው እንዴት የአለምን ኢኮኖሚ አብዮት እያስከተለ ነው።

የባህር ኃይል ሴክተር ወደ 150 ቢሊዮን ገበያ ያቀና እውነተኛ የአለም ኢኮኖሚ ሃይል ነው።

1 May 2024

አታሚዎች እና OpenAI በአርቴፊሻል ኢንተለጀንስ የሚሰራውን የመረጃ ፍሰት ለመቆጣጠር ስምምነቶችን ይፈራረማሉ

ባለፈው ሰኞ፣ ፋይናንሺያል ታይምስ ከOpenAI ጋር ስምምነት መደረጉን አስታውቋል። FT አለም አቀፍ ደረጃውን የጠበቀ ጋዜጠኝነትን ፍቃድ ሰጠ…

30 April 2024

ፈጠራን በቋንቋዎ ያንብቡ

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

ይከተሉን