Laravel ва Eloquent ба суръат бахшидан ба таҳияи барномаҳо ва платформаҳо кӯмак мерасонанд, ки ҳалли муносиби аксари мушкилотро таъмин мекунанд. Талаботҳо бо рушди тезтар, инчунин коди хуб ташкилшуда, дубора истифодашаванда, нигоҳдорӣ ва миқёспазир ҳал карда мешаванд.
Таҳиягарон метавонанд дар Eloquent
бо якчанд пойгоҳи додаҳо самаранок бо истифода аз татбиқи ActiveMethod. Ин як намунаи меъморӣ аст, ки модели дар сохтори Model-View-Controller (MVC) сохташуда ба ҷадвали пойгоҳи додаҳо мувофиқат мекунад. Бартарии он дар он аст, ки моделҳо амалиёти умумии пойгоҳи додаҳоро бидуни рамзгузории дархостҳои дарозмуддати SQL иҷро мекунанд. Шаблонҳо ба шумо имкон медиҳанд, ки маълумотро дар ҷадвалҳо пурсед ва ба ҷадвалҳо сабтҳои нав ворид кунед. Раванди ҳамоҳангсозии пойгоҳи додаҳои сершумор, ки дар системаҳои гуногун кор мекунанд, содда карда шудааст. Ба шумо лозим нест, ки дархостҳои SQL нависед. Ҳамаи шумо бояд кор кунед defiҶадвалҳои пойгоҳи додаҳо ва муносибатҳои байни онҳоро ба итмом расонед ва Eloquent боқимондаи корро анҷом медиҳад.
Арзёбии фоиданокии Eloquent ORM ва фаҳмидани экосистема ҳатмист. Қадамҳо барои оғоз:
migration
бо истифода аз консол Artisan
eloquent
seed
аз базаи маълумотArtisan Console
номи интерфейси сатри фармон аст, ки ба Laravel дохил карда шудааст. Маҷмӯи фармонҳои муфидро барои истифода ҳангоми таҳияи барномаи шумо пешниҳод мекунад. Он аз ҷониби ҷузъи пурқувват идора карда мешавад Symfony Console
.
Барои дидани рӯйхати ҳамаи фармонҳои дастраси Artisan, шумо метавонед фармони рӯйхатро истифода баред:
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
Дар ин ҷо шумо метавонед ҳазф кардан, илова кардан, тағир додани сабтҳоро дар МБ идома диҳед ва онҳоро бо фармони оддӣ барқарор кунед.
Амалиётҳои CRUD бо харитагари объект-реляционии Laravel Eloquent (ORM) барои таҳиягарони 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 пайдо мекунад:
$донишҷӯ = Донишҷӯён::find(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();
Усули нигоҳдорӣ инчунин метавонад барои навсозии моделҳое, ки аллакай дар пойгоҳи додаҳо мавҷуданд, истифода шавад.
Eloquent аз раванди осони навсозии сабти худ фахр мекунад, аммо он як ҳикояи ҳазфро дорад. Ду вариант вуҷуд дорад: сабтҳоро берун кунед ва усули несткуниро иҷро кунед ё танҳо усули нобудкуниро истифода баред. Барои дарёфт ва нест кардани сабт, танҳо фармонҳои зеринро иҷро кунед:
$student = Students::find(1);
$student->delete();
Барои нест кардани сабт ва сабтҳои сершумор, фармонҳо иҷро мешаванд:
Students::destroy(1);
Students::destroy(1, 2, 3);
Аҳамият диҳед, ки параметрҳои нобудкунӣ бар хилофи усули тозакунӣ, ки метавонанд ҳама гуна сутуни пойгоҳи додаҳоро қабул кунанд, танҳо калидҳои ибтидоӣ мебошанд.
Барои дарёфт ва нест кардани ҳамаи донишҷӯёни болотар аз сатҳи 10.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Дар поликлиникаи Катания амалиёти офтальмопластика бо истифода аз намоишгари тиҷоратии Apple Vision Pro анҷом дода шуд…
Рушди малакаҳои хуби моторӣ тавассути рангкунӣ кӯдаконро ба малакаҳои мураккабтаре, ба мисли навиштан омода мекунад. Барои ранг кардан…
Бахши баҳрӣ як қудрати воқеии иқтисодии ҷаҳонӣ аст, ки ба бозори 150 миллиард доллар ҳаракат кардааст ...
Рӯзи душанбеи гузашта рӯзномаи Financial Times бо OpenAI созишнома эълон кард. FT журналистикаи сатҳи ҷаҳонии худро иҷозатнома медиҳад…