Laravel او Eloquent د غوښتنلیک او پلیټ فارم پراختیا ګړندي کولو کې مرسته کوي ، د ډیری ستونزو لپاره کافي حل چمتو کوي. اړتیاوې د ګړندي پرمختګ سره په ګوته شوي ، په بیله بیا تنظیم شوي ، د بیا کارولو وړ ، ساتلو وړ ، او د توزیع وړ کوډ.
پراختیا کونکي کولی شي پدې کې کار وکړي Eloquent
د ډیری ډیټابیسونو سره په مؤثره توګه د ActiveMethod تطبیق په کارولو سره. دا یو معماري نمونه ده چیرې چې د ماډل لید - کنټرولر (MVC) جوړښت کې رامینځته شوی ماډل په ډیټابیس کې د میز سره مطابقت لري. ګټه دا ده چې ماډلونه د اوږدې SQL پوښتنو کوډ کولو پرته د ډیټابیس عمومي عملیات ترسره کوي. ټیمپلیټونه تاسو ته اجازه درکوي په جدولونو کې ډیټا پوښتنه وکړئ او نوي ریکارډونه په جدولونو کې دننه کړئ. په مختلفو سیسټمونو کې د ډیری ډیټابیسونو همغږي کولو پروسه ساده شوې. تاسو اړتیا نلرئ د SQL پوښتنو ولیکئ. ټول تاسو باید ترسره کړي defiد ډیټابیس میزونه او د دوی ترمنځ اړیکې پای ته ورسوي، او نور به نور کار وکړي.
د فصاحت ORM د کارونې ستاینه کول، او د ایکوسیستم پوهیدل اړین دي. د پیل کولو لپاره ګامونه:
migration
د کنسول په کارولو سره Artisan
eloquent
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
دا به ستاسو ټول مهاجرتونه لغوه کړي.
Eloquent
وروسته له دې چې د ډیټابیس مهاجرت بشپړ شو، راتلونکی پروسه ده seeding
. Eloquent
له هغه راهیسې لوبې ته راځي 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 کې د ننوتلو ړنګولو ، اضافه کولو ، ترمیمولو ته دوام ورکړئ ، بیا یې د ساده کمانډ سره بحال کړئ.
د 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 سره یوه معامله اعلان کړه. FT د نړۍ په کچه ژورنالیزم جواز ورکوي ...
ملیونونه خلک د سټیمینګ خدماتو لپاره تادیه کوي ، د میاشتنۍ ګډون فیس ورکوي. دا عام نظر دی چې تاسو…
د Veeam لخوا Coveware به د سایبر غصب پیښو غبرګون خدماتو چمتو کولو ته دوام ورکړي. Coveware به د عدلي او درملنې وړتیاوې وړاندې کړي ...
د وړاندوینې ساتنه د تیلو او ګاز سکتور کې انقلاب رامینځته کوي ، د نبات مدیریت لپاره د نوښت او فعال چلند سره.