بیشتر

Laravel Eloquent څه شی دی، دا څنګه کارول کیږي، د مثالونو سره درس

د Laravel PHP چوکاټ کې Eloquent Object Relational Mapper (ORM) شامل دي، کوم چې د ډیټابیس سره د خبرو اترو لپاره خورا اسانه لار وړاندې کوي. 

Laravel او Eloquent د غوښتنلیک او پلیټ فارم پراختیا ګړندي کولو کې مرسته کوي ، د ډیری ستونزو لپاره کافي حل چمتو کوي. اړتیاوې د ګړندي پرمختګ سره په ګوته شوي ، په بیله بیا تنظیم شوي ، د بیا کارولو وړ ، ساتلو وړ ، او د توزیع وړ کوډ. 

څنګه فصاحت کار کوي

پراختیا کونکي کولی شي پدې کې کار وکړي Eloquent د ډیری ډیټابیسونو سره په مؤثره توګه د ActiveMethod تطبیق په کارولو سره. دا یو معماري نمونه ده چیرې چې د ماډل لید - کنټرولر (MVC) جوړښت کې رامینځته شوی ماډل په ډیټابیس کې د میز سره مطابقت لري. ګټه دا ده چې ماډلونه د اوږدې SQL پوښتنو کوډ کولو پرته د ډیټابیس عمومي عملیات ترسره کوي. ټیمپلیټونه تاسو ته اجازه درکوي په جدولونو کې ډیټا پوښتنه وکړئ او نوي ریکارډونه په جدولونو کې دننه کړئ. په مختلفو سیسټمونو کې د ډیری ډیټابیسونو همغږي کولو پروسه ساده شوې. تاسو اړتیا نلرئ د SQL پوښتنو ولیکئ. ټول تاسو باید ترسره کړي defiد ډیټابیس میزونه او د دوی ترمنځ اړیکې پای ته ورسوي، او نور به نور کار وکړي.

لارویل چمتو کول

د فصاحت 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د ماډلونو قوم 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 عملیات د لارویل پراختیا کونکو لپاره د ډیری ډیټابیسونو سره کار کول اسانه کوي. دا د (CRUD) عملیات جوړول، لوستل، تازه کول، او حذف کول ترسره کوي، او د ډیټابیس میزونو ته د اعتراض ماډل نقشه کوي. د CRUD عملیاتو لپاره اړین ټول ډیټابیس تعاملات اداره کوي.

د ریکارډونو جوړول

تاسو کولی شئ ډیټابیس ته د نوي ریکارډ داخلولو لپاره ::create میتود وکاروئ.

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

د پورته ښودل شوي ساده جوړونې میتود سربیره ، تاسو کولی شئ یو نوی څیز هم رامینځته کړئ او مختلف صفات ورکړئ. بیا، تاسو کولی شئ د خوندي () فنکشن ته زنګ ووهئ او کوډ چل کړئ. طریقې لکه firstOrCreate() او firstOrNew() د ریکارډونو جوړولو لپاره نور اختیارونه دي. دا به تاسو ته اجازه درکړي چې د ځانګړو ځانګړتیاو سره یو زده کونکی ومومئ؛ که دا زده کونکی ونه موندل شي، تاسو به یې په ډیټابیس کې جوړ کړئ یا یو نوی مثال انسټاګرام کړئ.

د ریکارډونو لوستل

د روښانه ORM په کارولو سره، تاسو کولی شئ په خپل ډیټابیس کې ریکارډونه ومومئ. پوښتنې په ساده ډول جوړ شوي او یو اسانه جریان وړاندیز کوي. د بیانونو د جوړولو لپاره:where، تاسو به میتودونه وکاروئ get() او first(). طریقه first() به یوازې یو ریکارډ بیرته راولي، پداسې حال کې چې میتود get() به د ریکارډونو لوپ وړ لړۍ بیرته راولي. همدارنګه، طریقه find() د لومړنیو کلیدونو سره کارول کیدی شي، کوم چې به د سمون ریکارډونو ټولګه بیرته راولي. دلته ځینې مثالونه دي:

$student = Students::all();

دا کوډ ټول زده کونکي ترلاسه کوي. پداسې حال کې چې لاندې کوډ د ID لخوا یو ځانګړی زده کونکی ومومي:

$student = زده کوونکي::موند(1);

همدارنګه، لکه څنګه چې لاندې ښودل شوي، کوډ د یو ځانګړي ځانګړتیا پراساس د زده کونکي لټون کول تشریح کوي.

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

د ترلاسه کولو () میتود لپاره، دا کوډ ښیې چې څنګه د 5 څخه پورته کچې سره زده کونکي ومومئ.

$rankStudents = Student::where('student_rank', '>', 5)->get();
د ریکارډ تازه کول

د فصاحت په کارولو سره د ریکارډونو تازه کول خورا اسانه دي. د ریکارډ تازه کولو لپاره، یوازې هغه ریکارډ ومومئ چې تاسو یې تازه کول غواړئ، ځانګړتیاوې ایډیټ کړئ او خوندي کړئ. د مثال په توګه، د جان دو زده کونکي د درجې کچه 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
د نوښت خبر پاڼه
د نوښت په اړه خورا مهم خبرونه له لاسه مه ورکوئ. د بریښنالیک له لارې دوی ترلاسه کولو لپاره لاسلیک وکړئ.

وروستي مقالې

خپرونکي او OpenAI تړونونه لاسلیک کوي ترڅو د مصنوعي استخباراتو لخوا پروسس شوي معلوماتو جریان تنظیم کړي

تیره دوشنبه، فایننشل ټایمز د OpenAI سره یوه معامله اعلان کړه. FT د نړۍ په کچه ژورنالیزم جواز ورکوي ...

30 اپریل 2024

آنلاین تادیات: دلته د سټیمینګ خدمات تاسو ته د تل لپاره تادیه کوي

ملیونونه خلک د سټیمینګ خدماتو لپاره تادیه کوي ، د میاشتنۍ ګډون فیس ورکوي. دا عام نظر دی چې تاسو…

29 اپریل 2024

Veeam د ransomware لپاره خورا پراخه ملاتړ وړاندې کوي ، له محافظت څخه تر غبرګون او رغیدو پورې

د Veeam لخوا Coveware به د سایبر غصب پیښو غبرګون خدماتو چمتو کولو ته دوام ورکړي. Coveware به د عدلي او درملنې وړتیاوې وړاندې کړي ...

23 اپریل 2024

شنه او ډیجیټل انقلاب: د وړاندوینې وړ ساتنه څنګه د تیلو او ګاز صنعت بدلوي

د وړاندوینې ساتنه د تیلو او ګاز سکتور کې انقلاب رامینځته کوي ، د نبات مدیریت لپاره د نوښت او فعال چلند سره.

22 اپریل 2024

نوښت په خپله ژبه ولولئ

د نوښت خبر پاڼه
د نوښت په اړه خورا مهم خبرونه له لاسه مه ورکوئ. د بریښنالیک له لارې دوی ترلاسه کولو لپاره لاسلیک وکړئ.

مونږ سره په