არტიკოლი

რა არის Laravel Eloquent, როგორ გამოვიყენოთ იგი, გაკვეთილი მაგალითებით

Laravel PHP Framework მოიცავს Eloquent Object Relational Mapper (ORM), რომელიც უზრუნველყოფს მონაცემთა ბაზასთან კომუნიკაციის უკიდურესად მარტივ გზას. 

Laravel და Eloquent ხელს უწყობს აპლიკაციისა და პლატფორმის შემუშავების დაჩქარებას, რაც უზრუნველყოფს ადეკვატურ გადაწყვეტას პრობლემების უმეტესობისთვის. მოთხოვნები დაკმაყოფილებულია უფრო სწრაფი განვითარებით, ასევე კარგად ორგანიზებული, ხელახლა გამოყენებადი, შენარჩუნებული და მასშტაბირებადი კოდით. 

როგორ მუშაობს Eloquent

დეველოპერებს შეუძლიათ მუშაობა Eloquent მრავალი მონაცემთა ბაზებით ეფექტური ActiveMethod განხორციელების გამოყენებით. ეს არის არქიტექტურული ნიმუში, სადაც მოდელი-View-Controller (MVC) სტრუქტურაში შექმნილი მოდელი შეესაბამება მონაცემთა ბაზაში არსებულ ცხრილს. უპირატესობა ის არის, რომ მოდელები ასრულებენ მონაცემთა ბაზის საერთო ოპერაციებს გრძელი SQL მოთხოვნების კოდირების გარეშე. შაბლონები საშუალებას გაძლევთ მოიძიოთ მონაცემები ცხრილებში და ჩადოთ ახალი ჩანაწერები ცხრილებში. სხვადასხვა სისტემაზე გაშვებული მრავალი მონაცემთა ბაზის სინქრონიზაციის პროცესი გამარტივებულია. თქვენ არ გჭირდებათ SQL მოთხოვნების დაწერა. ყველაფერი რაც თქვენ უნდა გააკეთოთ არის defiდაასრულეთ მონაცემთა ბაზის ცხრილები და მათ შორის ურთიერთობა და Eloquent შეასრულებს დანარჩენ სამუშაოს.

ლარაველის მომზადება

Eloquent ORM-ის სარგებლიანობის დაფასება და ეკოსისტემის გაგება აუცილებელია. ნაბიჯები დასაწყებად:

  1. დააინსტალირეთ Laravel getcomposer.org-დან, ამისათვის მიჰყევით აქ ინსტრუქციას
  2. Შექმნა migration კონსოლის გამოყენებით Artisan
  3. შექმენით შაბლონები eloquent
  4. გაშვება მე 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და აქვს ორი მეთოდი: ზევით და ქვევით. up მეთოდმა უნდა შეიტანოს ცვლილებები მონაცემთა ბაზაში; ასე რომ, როდესაც თქვენ მიგრირებთ თქვენს მონაცემთა ბაზას, ნებისმიერი კოდი up მეთოდით შესრულდება. მეორეს მხრივ, ქვემოთ მეთოდმა უნდა დააბრუნოს მონაცემთა ბაზის ცვლილებები; ასე რომ, როდესაც თქვენ აწარმოებთ rollback საქართველოს migration, ქვემოთ მეთოდმა უნდა გააუქმოს ის, რაც გააკეთა up მეთოდმა. მეთოდის შიგნით 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

თესლები

საერთო seders არის კლასების სპეციალური ნაკრები, რომელიც საშუალებას გვაძლევს შევავსოთ ჩვენი მონაცემთა ბაზა ისევ და ისევ ზუსტად იგივე მონაცემებით. ჩვენ ვახორციელებთ შემდეგ ბრძანებას:

php artisan make:seeder StudentsRecordSeeder

ტექსტურ რედაქტორში, seeds საქაღალდის ქვეშ, გახსენით ახლად შექმნილი ფაილი ფაილის სახელით: 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-ში ჩანაწერების წაშლა, დამატება, შეცვლა, შემდეგ მათი აღდგენა მარტივი ბრძანებით.

CRUD Laravel Eloquent-ით

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-ით:

$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
საინფორმაციო ბიულეტენი
არ გამოტოვოთ ყველაზე მნიშვნელოვანი სიახლეები ინოვაციების შესახებ. დარეგისტრირდით, რომ მიიღოთ ისინი ელექტრონული ფოსტით.

ბოლო სტატიები

როგორ გავაერთიანოთ მონაცემები Excel-ში

ნებისმიერი ბიზნეს ოპერაცია აწარმოებს უამრავ მონაცემს, თუნდაც სხვადასხვა ფორმით. ხელით შეიყვანეთ ეს მონაცემები Excel ფურცლიდან…

14 მაისი 2024

ინტერფეისის სეგრეგაციის პრინციპი (ISP), მეოთხე SOLID პრინციპი

ინტერფეისის სეგრეგაციის პრინციპი არის ობიექტზე ორიენტირებული დიზაინის ხუთი მყარი პრინციპიდან ერთ-ერთი. კლასს უნდა ჰქონდეს…

14 მაისი 2024

როგორ მოვაწყოთ მონაცემები და ფორმულები საუკეთესოდ Excel-ში, კარგად გაკეთებული ანალიზისთვის

Microsoft Excel არის მონაცემთა ანალიზის საცნობარო ინსტრუმენტი, რადგან ის გთავაზობთ მრავალ ფუნქციას მონაცემთა ნაკრების ორგანიზებისთვის,…

14 მაისი 2024

დადებითი დასკვნა ორი მნიშვნელოვანი Walliance Equity Crowdfunding პროექტისთვის: Jesolo Wave Island და Milano Via Ravenna

Walliance, SIM და პლატფორმა ევროპის ლიდერებს შორის უძრავი ქონების Crowdfunding-ის სფეროში 2017 წლიდან, აცხადებს დასრულებას…

13 მაისი 2024

რა არის Filament და როგორ გამოვიყენოთ Laravel Filament

Filament არის "აჩქარებული" Laravel განვითარების ჩარჩო, რომელიც უზრუნველყოფს რამდენიმე სრული დასტას კომპონენტს. იგი შექმნილია პროცესის გასამარტივებლად…

13 მაისი 2024

ხელოვნური ინტელექტის კონტროლის ქვეშ

„მე უნდა დავბრუნდე, რომ დავასრულო ჩემი ევოლუცია: მე კომპიუტერში საკუთარ თავს პროექტირებას მოვახდენ და სუფთა ენერგია გავხდები. მას შემდეგ რაც დასახლდა…

10 მაისი 2024

Google-ის ახალ ხელოვნურ ინტელექტს შეუძლია დნმ-ის, რნმ-ის და „სიცოცხლის ყველა მოლეკულის“ მოდელირება.

Google DeepMind წარმოგიდგენთ ხელოვნური ინტელექტის მოდელის გაუმჯობესებულ ვერსიას. ახალი გაუმჯობესებული მოდელი უზრუნველყოფს არა მხოლოდ…

9 მაისი 2024

წაიკითხეთ ინოვაცია თქვენს ენაზე

საინფორმაციო ბიულეტენი
არ გამოტოვოთ ყველაზე მნიშვნელოვანი სიახლეები ინოვაციების შესახებ. დარეგისტრირდით, რომ მიიღოთ ისინი ელექტრონული ფოსტით.

Follow us

ბოლო სტატიები