مضامین

Laravel Eloquent کیا ہے، اسے کیسے استعمال کیا جائے، مثالوں کے ساتھ سبق

Laravel PHP فریم ورک میں Eloquent Object Relational Mapper (ORM) شامل ہے، جو ڈیٹا بیس کے ساتھ بات چیت کرنے کا انتہائی آسان طریقہ فراہم کرتا ہے۔ 

Laravel اور Eloquent ایپلی کیشن اور پلیٹ فارم کی ترقی کو تیز کرنے میں مدد کرتے ہیں، زیادہ تر مسائل کا مناسب حل فراہم کرتے ہیں۔ تقاضوں کو تیز تر ترقی کے ساتھ ساتھ اچھی طرح سے منظم، دوبارہ قابل استعمال، برقرار رکھنے کے قابل، اور توسیع پذیر کوڈ کے ساتھ حل کیا جاتا ہے۔ 

کس طرح فصاحت کام کرتا ہے

ڈویلپرز کام کر سکتے ہیں۔ Eloquent ایکٹیو میتھڈ کے نفاذ کو مؤثر طریقے سے استعمال کرتے ہوئے متعدد ڈیٹا بیس کے ساتھ۔ یہ ایک آرکیٹیکچرل پیٹرن ہے جہاں Model-View-Controller (MVC) ڈھانچے میں بنایا گیا ماڈل ڈیٹا بیس میں موجود ٹیبل سے مطابقت رکھتا ہے۔ فائدہ یہ ہے کہ ماڈلز طویل ایس کیو ایل سوالات کو کوڈنگ کیے بغیر عام ڈیٹا بیس آپریشنز انجام دیتے ہیں۔ ٹیمپلیٹس آپ کو جدولوں میں ڈیٹا استفسار کرنے اور ٹیبلز میں نئے ریکارڈ داخل کرنے کی اجازت دیتے ہیں۔ مختلف سسٹمز پر چلنے والے متعدد ڈیٹا بیسز کو ہم آہنگ کرنے کے عمل کو آسان بنایا گیا ہے۔ آپ کو SQL سوالات لکھنے کی ضرورت نہیں ہے۔ آپ کو صرف اتنا کرنا ہے۔ defiڈیٹا بیس ٹیبلز اور ان کے درمیان تعلقات کو ختم کریں، اور Eloquent باقی کام کرے گا۔

لاریول کی تیاری

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

منتقلی ایک ڈیٹا بیس کے انتظام کا عمل ہے اس کے بجائے پی ایچ پی لکھ کر 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()o firstOrNew() ریکارڈ بنانے کے لیے دوسرے اختیارات ہیں۔ یہ آپ کو کچھ خاص صفات کے ساتھ طالب علم تلاش کرنے کی اجازت دیں گے۔ اگر وہ طالب علم نہیں ملتا ہے، تو آپ اسے ڈیٹا بیس میں تخلیق کریں گے یا ایک نئی مثال پیش کریں گے۔

ریکارڈ پڑھنا

Eloquent ORM کا استعمال کرتے ہوئے، آپ اپنے ڈیٹا بیس میں ریکارڈ تلاش کر سکتے ہیں۔ سوالات آسانی سے بنائے جاتے ہیں اور ایک ہموار بہاؤ پیش کرتے ہیں۔ بیانات بنانے کے لیے:where، آپ طریقے استعمال کریں گے۔ get() اور first() طریقہ کار first() صرف ایک ریکارڈ واپس کرے گا، جبکہ طریقہ get() ریکارڈز کی ایک loopable صف واپس کرے گا. اس کے علاوہ، طریقہ find() کو بنیادی کلیدوں کی ایک صف کے ساتھ استعمال کیا جا سکتا ہے، جو مماثل ریکارڈز کا مجموعہ واپس کرے گا۔ یہاں کچھ مثالیں ہیں:

$student = Students::all();

یہ کوڈ تمام طلباء کو ملتا ہے۔ جب کہ درج ذیل کوڈ ایک مخصوص طالب علم کو ID کے ذریعے تلاش کرتا ہے:

$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
انوویشن نیوز لیٹر
جدت پر سب سے اہم خبروں کو مت چھوڑیں۔ ای میل کے ذریعے انہیں وصول کرنے کے لیے سائن اپ کریں۔

حالیہ مضامین

Veeam ransomware کے لیے تحفظ سے لے کر ردعمل اور بازیابی تک سب سے زیادہ جامع تعاون فراہم کرتا ہے۔

Veeam کی طرف سے Coveware سائبر بھتہ خوری کے واقعات کے ردعمل کی خدمات فراہم کرتا رہے گا۔ Coveware فرانزک اور تدارک کی صلاحیتیں پیش کرے گا…

اپریل 23 2024

سبز اور ڈیجیٹل انقلاب: کس طرح پیشین گوئی کی دیکھ بھال تیل اور گیس کی صنعت کو تبدیل کر رہی ہے

پیشن گوئی کی دیکھ بھال تیل اور گیس کے شعبے میں انقلاب برپا کر رہی ہے، پلانٹ کے انتظام کے لیے ایک جدید اور فعال نقطہ نظر کے ساتھ۔

اپریل 22 2024

UK کے عدم اعتماد کے ریگولیٹر نے GenAI پر BigTech کا الارم بڑھا دیا۔

UK CMA نے مصنوعی ذہانت کے بازار میں بگ ٹیک کے رویے کے بارے میں ایک انتباہ جاری کیا ہے۔ وہاں…

اپریل 18 2024

کاسا گرین: اٹلی میں پائیدار مستقبل کے لیے توانائی کا انقلاب

عمارتوں کی توانائی کی کارکردگی کو بڑھانے کے لیے یورپی یونین کی طرف سے تیار کردہ "گرین ہاؤسز" فرمان نے اپنے قانون سازی کے عمل کو اس کے ساتھ ختم کیا ہے…

اپریل 18 2024

اپنی زبان میں انوویشن پڑھیں

انوویشن نیوز لیٹر
جدت پر سب سے اہم خبروں کو مت چھوڑیں۔ ای میل کے ذریعے انہیں وصول کرنے کے لیے سائن اپ کریں۔

ہمارے ساتھ چلیے