Артиколи

Laravel Eloquent дегеніміз не, оны қалай қолдануға болады, мысалдармен оқулық

Laravel PHP құрылымы мәліметтер қорымен байланысудың өте оңай жолын қамтамасыз ететін Eloquent Object Relational Mapper (ORM) қамтиды. 

Laravel және Eloquent көптеген мәселелердің барабар шешімін қамтамасыз ете отырып, қолданбалар мен платформаларды әзірлеуді жылдамдатуға көмектеседі. Талаптар жылдамырақ әзірлеумен, сондай-ақ жақсы ұйымдастырылған, қайта пайдалануға болатын, техникалық қызмет көрсететін және масштабталатын кодпен шешіледі. 

Eloquent қалай жұмыс істейді

Әзірлеушілер жұмыс істей алады Eloquent ActiveMethod іске асыру арқылы тиімді бірнеше дерекқорлармен. Бұл Model-View-Controller (MVC) құрылымында жасалған модель дерекқордағы кестеге сәйкес келетін архитектуралық үлгі. Артықшылығы мынада: модельдер ұзақ SQL сұрауларын кодтаусыз жалпы дерекқор операцияларын орындайды. Үлгілер кестелердегі мәліметтерді сұрауға және кестелерге жаңа жазбаларды енгізуге мүмкіндік береді. Әртүрлі жүйелерде жұмыс істейтін бірнеше дерекқорды синхрондау процесі жеңілдетілген. SQL сұрауларын жазудың қажеті жоқ. Бар болғаны істеу керек defiДерекқор кестелері мен олардың арасындағы байланыстарды аяқтаңыз, ал Eloquent қалған жұмысты орындайды.

Ларавелді дайындау

Eloquent ORM пайдалылығын бағалау және экожүйені түсіну міндетті болып табылады. Бастау үшін қадамдар:

  1. Laravel-ті getcomposer.org сайтынан орнатыңыз, мұны істеу үшін мұндағы нұсқауларды орындаңыз
  2. Жасау migration консольді пайдалану Artisan
  3. Үлгілерді жасау eloquent
  4. жүгіру i seed деректер қорынан

Artisan Console — Ларавелге енгізілген пәрмен жолы интерфейсінің атауы. Қолданбаны әзірлеу кезінде пайдалану үшін пайдалы пәрмендер жинағын қамтамасыз етеді. Ол қуатты құрамдас арқылы қозғалады 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', және екі әдісі бар: жоғары және төмен. Up әдісі мәліметтер базасына өзгерістер енгізуі керек; сондықтан дерекқорды тасымалдаған сайын, жоғары әдісіндегі кез келген код орындалады. Екінші жағынан, down әдісі сол дерекқор өзгерістерін кері қайтаруы керек; сондықтан қашан іске қоссаңыз rollback della 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

Мұнда ДҚ-дағы жазбаларды жоюды, қосуды, өзгертуді жалғастыра аласыз, содан кейін оларды қарапайым пәрмен арқылы қалпына келтіре аласыз.

Laravel Eloquent көмегімен CRUD

Laravel Eloquent объектілік реляциялық картамен (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();

Бұл код барлық студенттерді алады. Келесі код нақты студентті идентификатор бойынша табады:

$student = Оқушылар::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
Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Соңғы мақалалар

Баспагерлер мен OpenAI жасанды интеллект өңдейтін ақпарат ағынын реттеу үшін келісімдерге қол қояды.

Өткен дүйсенбіде Financial Times OpenAI-мен келісім туралы жариялады. FT өзінің әлемдік деңгейдегі журналистикасына лицензия береді…

30 Сәуір 2024

Онлайн төлемдер: Міне, ағынды қызметтер сізге мәңгілік төлем жасауға мүмкіндік береді

Миллиондаған адамдар ай сайынғы абоненттік төлемді төлей отырып, ағынды қызметтерге ақы төлейді. Жалпы пікір, сіз…

29 Сәуір 2024

Veeam қорғаныстан жауап беруге және қалпына келтіруге дейін төлемдік бағдарламалық құралға ең жан-жақты қолдау көрсетеді

Veeam ұсынған Coveware кибербопсалау оқиғаларына жауап беру қызметтерін көрсетуді жалғастырады. Coveware криминалистикалық және қалпына келтіру мүмкіндіктерін ұсынады ...

23 Сәуір 2024

Жасыл және цифрлық революция: болжамды техникалық қызмет көрсету мұнай және газ саласын қалай өзгертеді

Болжалды техникалық қызмет көрсету зауытты басқаруға инновациялық және белсенді көзқараспен мұнай және газ секторында төңкеріс жасайды.…

22 Сәуір 2024

Инновацияны өз тіліңізде оқыңыз

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Артымыздан