مقالات

Laravel Eloquent ڇا آهي، ان کي ڪيئن استعمال ڪجي، مثالن سان سبق

Laravel PHP فريم ورڪ ۾ Eloquent Object Relational Mapper (ORM) شامل آهي، جيڪو ڊيٽابيس سان رابطو ڪرڻ جو انتهائي آسان طريقو مهيا ڪري ٿو. 

Laravel ۽ Eloquent ايپليڪيشن ۽ پليٽ فارم جي ترقي کي تيز ڪرڻ ۾ مدد ڪري ٿو، اڪثر مسئلن جو مناسب حل مهيا ڪري ٿو. ضرورتن کي تيز ترقي سان خطاب ڪيو ويو آهي، گڏوگڏ چڱي طرح منظم، ٻيهر استعمال لائق، برقرار رکڻ، ۽ اسپيبلبل ڪوڊ. 

ڪيئن فصاحت ڪم

ڊولپرز ڪم ڪري سگهن ٿا Eloquent هڪ کان وڌيڪ ڊيٽابيس سان گڏ موثر طريقي سان استعمال ڪندي ActiveMethod عمل درآمد. اهو هڪ آرڪيٽيڪچرل نمونو آهي جتي ماڊل-ويو-ڪنٽرولر (MVC) جي جوڙجڪ ۾ ٺهيل ماڊل ڊيٽابيس ۾ ٽيبل سان ملندو آهي. فائدو اهو آهي ته ماڊل ڊگھي SQL سوالن جي ڪوڊنگ کان سواءِ عام ڊيٽابيس جا عمل انجام ڏين ٿا. ٽيمپليٽس توهان کي جدولن ۾ ڊيٽا پڇڻ ۽ جدولن ۾ نوان رڪارڊ داخل ڪرڻ جي اجازت ڏين ٿا. مختلف سسٽم تي هلندڙ ڪيترن ئي ڊيٽابيس کي هم وقت سازي ڪرڻ جو عمل آسان ڪيو ويو آهي. توهان کي SQL سوالن کي لکڻ جي ضرورت ناهي. توهان سڀني کي ڪرڻو آهي defiڊيٽابيس جي جدولن ۽ انهن جي وچ ۾ لاڳاپا ختم ڪريو، ۽ فصاحت باقي ڪم ڪندو.

Laravel جي تياري

Eloquent ORM جي افاديت کي ساراهيو، ۽ ماحولياتي نظام کي سمجھڻ ضروري آهي. شروع ڪرڻ لاء قدم:

  1. انسٽال ڪريو Laravel کان getcomposer.org، اهو ڪرڻ لاءِ هتي ڏنل هدايتن تي عمل ڪريو
  2. ٺاهيو migration ڪنسول استعمال ڪندي Artisan
  3. ٽيمپليٽ ٺاهيو eloquent
  4. هلائڻ i 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

هتي توهان ڊي بي ۾ داخلائن کي حذف ڪرڻ، شامل ڪرڻ، تبديل ڪرڻ، پوءِ انهن کي هڪ سادي حڪم سان بحال ڪري سگهو ٿا.

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 ذريعي ڳولي ٿو:

شاگرد = شاگرد:: ڳولهيو (1)؛

انهي سان گڏ، جيئن هيٺ ڏيکاريل آهي، ڪوڊ وضاحت ڪري ٿو هڪ مخصوص وصف جي بنياد تي هڪ شاگرد جي ڳولا.

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

get() طريقي لاءِ، هي ڪوڊ ڏيکاري ٿو ته ڪيئن ڳولي سگهجي هڪ شاگرد کي 5 کان مٿي جي سطح سان.

$rankStudents = Student::where('student_rank', '>', 5)->get();
رڪارڊ اپڊيٽ

Eloquent استعمال ڪندي رڪارڊ کي اپڊيٽ ڪرڻ بلڪل آسان آهي. رڪارڊ کي اپڊيٽ ڪرڻ لاءِ، صرف اهو رڪارڊ ڳولھيو جيڪو توھان اپڊيٽ ڪرڻ چاھيو ٿا، خاصيتون تبديل ڪريو ۽ محفوظ ڪريو. مثال طور، John Doe جي شاگرد جي گريڊ ليول کي 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 ۾ جديد مداخلت، ڪيٽينيا پولي ڪلينڪ ۾ ايپل ناظر سان

ڪيٽينيا پولي ڪلينڪ ۾ ايپل ويزن پرو ڪمرشل ناظر استعمال ڪندي هڪ چشمي جو آپريشن ڪيو ويو…

3 2024

ٻارن لاءِ رنگين صفحن جا فائدا - سڀني عمرن لاءِ جادوءَ جي دنيا

رنگ سازي ذريعي سٺي موٽر صلاحيتن کي ترقي ڪرڻ ٻارن کي وڌيڪ پيچيده صلاحيتن لاء تيار ڪري ٿو جهڙوڪ لکڻ. رنگ ڏيڻ…

2 2024

مستقبل هتي آهي: ڪيئن شپنگ انڊسٽري عالمي معيشت ۾ انقلاب آڻيندي آهي

بحري شعبي هڪ حقيقي عالمي معاشي طاقت آهي، جيڪا 150 بلين مارڪيٽ جي طرف نيويگيٽ ڪئي آهي ...

1 2024

پبلشرز ۽ OpenAI مصنوعي ذهانت پاران پروسيس ڪيل معلومات جي وهڪري کي منظم ڪرڻ لاءِ معاهدن تي دستخط ڪن ٿا

گذريل سومر، فنانشل ٽائمز OpenAI سان هڪ ڊيل جو اعلان ڪيو. ايف ٽي پنهنجي عالمي سطح جي صحافت کي لائسنس ڏئي ٿو ...

30 اپريل 2024

پنھنجي ٻوليءَ ۾ جدت پڙھو

جدت نيوز ليٽر
جدت تي سڀ کان اهم خبر نه وڃايو. انهن کي اي ميل ذريعي حاصل ڪرڻ لاء سائن اپ ڪريو.

اسان جي تابعداري ڪريو