εμπορεύματα

Τι είναι το Laravel Eloquent, πώς να το χρησιμοποιήσετε, σεμινάριο με παραδείγματα

Το πλαίσιο PHP της Laravel περιλαμβάνει το Eloquent Object Relational Mapper (ORM), το οποίο παρέχει έναν εξαιρετικά εύκολο τρόπο επικοινωνίας με μια βάση δεδομένων. 

Το Laravel και το Eloquent βοηθούν στην επιτάχυνση της ανάπτυξης εφαρμογών και πλατφόρμας, παρέχοντας μια επαρκή λύση στα περισσότερα προβλήματα. Οι απαιτήσεις αντιμετωπίζονται με ταχύτερη ανάπτυξη, καθώς και με καλά οργανωμένο, επαναχρησιμοποιήσιμο, συντηρήσιμο και επεκτάσιμο κώδικα. 

Πώς λειτουργεί το Eloquent

Οι προγραμματιστές μπορούν να εργαστούν σε Eloquent με πολλαπλές βάσεις δεδομένων αποτελεσματικά χρησιμοποιώντας μια υλοποίηση ActiveMethod. Είναι ένα αρχιτεκτονικό μοτίβο όπου το μοντέλο που δημιουργήθηκε στη δομή Model-View-Controller (MVC) αντιστοιχεί σε έναν πίνακα στη βάση δεδομένων. Το πλεονέκτημα είναι ότι τα μοντέλα εκτελούν κοινές λειτουργίες βάσης δεδομένων χωρίς να κωδικοποιούν μεγάλα ερωτήματα SQL. Τα πρότυπα σάς επιτρέπουν να ρωτάτε δεδομένα σε πίνακες και να εισάγετε νέες εγγραφές σε πίνακες. Η διαδικασία συγχρονισμού πολλαπλών βάσεων δεδομένων που εκτελούνται σε διαφορετικά συστήματα είναι απλοποιημένη. Δεν χρειάζεται να γράψετε ερωτήματα SQL. Το μόνο που έχετε να κάνετε είναι defiΟλοκληρώστε τους πίνακες της βάσης δεδομένων και τις σχέσεις μεταξύ τους και το Eloquent θα κάνει την υπόλοιπη δουλειά.

Προετοιμασία Laravel

Η εκτίμηση της χρησιμότητας του Eloquent ORM και η κατανόηση του οικοσυστήματος είναι απαραίτητη. Βήματα για να ξεκινήσετε:

  1. Εγκαταστήστε το Laravel από το getcomposer.org, για να το κάνετε αυτό ακολουθήστε τις οδηγίες εδώ
  2. Δημιουργία migration χρησιμοποιώντας την κονσόλα Artisan
  3. Δημιουργία προτύπων eloquent
  4. τρέχω θ seed της βάσης δεδομένων

Artisan Console είναι το όνομα της διεπαφής γραμμής εντολών που περιλαμβάνεται στο Laravel. Παρέχει ένα σύνολο χρήσιμων εντολών για χρήση κατά την ανάπτυξη της εφαρμογής σας. Οδηγείται από το ισχυρό εξάρτημα Symfony Console.

Για να δείτε μια λίστα με όλες τις διαθέσιμες εντολές Artisan, μπορείτε να χρησιμοποιήσετε την εντολή λίστας:

php artisan list

Όλες οι εντολές συνοδεύονται από μια συνοπτική περιγραφή των επιχειρημάτων και των επιλογών τους. Αυτό εμφανίζεται σε μια οθόνη "βοήθειας". Για να εμφανίσετε μια οθόνη βοήθειας, απλώς προηγείστε το όνομα της εντολής με το "help" όπως φαίνεται:

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 υπάρχει το πρόγραμμα δημιουργίας σχημάτων που χρησιμοποιείται για τη δημιουργία και το χειρισμό των πινάκων. Τι θα συμβεί αν ακυρώσετε ορισμένες από τις μετεγκαταστάσεις σας; Το μόνο που έχετε να κάνετε είναι να εφαρμόσετε την ακόλουθη εντολή:

php artisan migrate:rollback

Και θα μαζέψει το τελευταίο migration που έχει εφαρμοστεί. Επίσης, μπορείτε να επαναφέρετε πλήρως τη βάση δεδομένων εκτελώντας:

php artisan migrate:reset

Αυτό θα ακυρώσει όλες τις μετεγκαταστάσεις σας.

Defition των μοντέλων του 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

Σπόροι

Το Overall 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. Επεξεργαστείτε τον κώδικα και μετά αποθηκεύστε τον.

Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.
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 object-relational mapper (ORM) διευκολύνουν τους προγραμματιστές Laravel να εργάζονται με πολλές βάσεις δεδομένων. Εκτελεί λειτουργίες δημιουργίας, ανάγνωσης, ενημέρωσης και διαγραφής (CRUD) και αντιστοιχίζει μοντέλα αντικειμένων σε πίνακες βάσης δεδομένων. Χειρίζεται όλες τις αλληλεπιδράσεις βάσης δεδομένων που απαιτούνται για λειτουργίες CRUD.

Δημιουργία αρχείων

Μπορείτε να χρησιμοποιήσετε τη μέθοδο ::create για να εισαγάγετε μια νέα εγγραφή στη βάση δεδομένων.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Εκτός από την απλή μέθοδο δημιουργίας που φαίνεται παραπάνω, μπορείτε επίσης να δημιουργήσετε ένα νέο αντικείμενο και να του δώσετε διαφορετικά χαρακτηριστικά. Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση αποθήκευσης () και να εκτελέσετε τον κώδικα. Μέθοδοι όπως firstOrCreate() ή firstOrNew() είναι άλλες επιλογές για τη δημιουργία εγγραφών. Αυτά θα σας επιτρέψουν να βρείτε έναν μαθητή με ορισμένα χαρακτηριστικά. Εάν αυτός ο μαθητής δεν βρεθεί, θα τον δημιουργήσετε στη βάση δεδομένων ή θα δημιουργήσετε ένα νέο στιγμιότυπο.

Ανάγνωση αρχείων

Χρησιμοποιώντας το Eloquent ORM, μπορείτε να βρείτε εγγραφές στη βάση δεδομένων σας. Τα ερωτήματα είναι απλά κατασκευασμένα και προσφέρουν ομαλή ροή. Για να δημιουργήσετε δηλώσεις:where, θα χρησιμοποιήσετε τις μεθόδους get() Και first(). Η μέθοδος first() θα επιστρέψει μόνο μία εγγραφή, ενώ η μέθοδος get() θα επιστρέψει μια σειρά εγγραφών με δυνατότητα loop. Επίσης, η μέθοδος find() μπορεί να χρησιμοποιηθεί με μια σειρά από πρωτεύοντα κλειδιά, τα οποία θα επιστρέψουν μια συλλογή από αντίστοιχες εγγραφές. Να μερικά παραδείγματα:

$student = Students::all();

Αυτός ο κωδικός παίρνει όλους τους μαθητές. Ενώ ο παρακάτω κώδικας βρίσκει έναν συγκεκριμένο μαθητή με αναγνωριστικό:

$student = Students::find(1);

Επίσης, όπως φαίνεται παρακάτω, ο κώδικας περιγράφει την αναζήτηση ενός μαθητή με βάση ένα συγκεκριμένο χαρακτηριστικό.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Για τη μέθοδο get(), αυτός ο κώδικας δείχνει πώς να βρείτε έναν μαθητή με επίπεδο πάνω από 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Ενημέρωση εγγραφής

Η ενημέρωση των εγγραφών χρησιμοποιώντας το Eloquent είναι εξίσου εύκολη. Για να ενημερώσετε μια εγγραφή, απλώς βρείτε την εγγραφή που θέλετε να ενημερώσετε, επεξεργαστείτε τα χαρακτηριστικά και αποθηκεύστε. Για παράδειγμα, για να αλλάξετε το επίπεδο βαθμού του μαθητή του John Doe σε 5, βρείτε πρώτα τον μαθητή και, στη συνέχεια, εκτελέστε τη μέθοδο αποθήκευσης.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Η μέθοδος αποθήκευσης μπορεί επίσης να χρησιμοποιηθεί για την ενημέρωση μοντέλων που υπάρχουν ήδη στη βάση δεδομένων.

Διαγραφή εγγραφών

Το Eloquent μπορεί να υπερηφανεύεται για την εύκολη διαδικασία ενημέρωσης των αρχείων του, αλλά έχει την ίδια ιστορία με τη διαγραφή. Υπάρχουν δύο επιλογές: pull-out εγγραφές και εκτέλεση της μεθόδου διαγραφής ή απλά χρησιμοποιήστε τη μέθοδο καταστροφής. Για να βρείτε και να διαγράψετε μια εγγραφή, απλώς εκτελέστε τις ακόλουθες εντολές:

$student = Students::find(1);
$student->delete();

Για να διαγράψετε μια εγγραφή και πολλές εγγραφές, εκτελούνται οι εντολές:

Students::destroy(1);
Students::destroy(1, 2, 3);

Σημειώστε ότι οι παράμετροι καταστροφής είναι μόνο πρωτεύοντα κλειδιά σε αντίθεση με τη μέθοδο διαγραφής που μπορεί να δεχθεί οποιαδήποτε στήλη βάσης δεδομένων.

Για να βρείτε και να διαγράψετε όλους τους μαθητές πάνω από το επίπεδο 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.

Πρόσφατα άρθρα

Τα οφέλη των σελίδων χρωματισμού για παιδιά - ένας κόσμος μαγείας για όλες τις ηλικίες

Η ανάπτυξη λεπτών κινητικών δεξιοτήτων μέσω του χρωματισμού προετοιμάζει τα παιδιά για πιο σύνθετες δεξιότητες όπως η γραφή. Να χρωματίσω…

2 Μαΐου 2024

Το μέλλον είναι εδώ: Πώς η ναυτιλιακή βιομηχανία φέρνει επανάσταση στην παγκόσμια οικονομία

Ο ναυτικός τομέας είναι μια πραγματική παγκόσμια οικονομική δύναμη, η οποία έχει προσανατολιστεί προς μια αγορά 150 δισεκατομμυρίων...

1 Μαΐου 2024

Οι εκδότες και το OpenAI υπογράφουν συμφωνίες για τη ρύθμιση της ροής πληροφοριών που επεξεργάζεται η τεχνητή νοημοσύνη

Την περασμένη Δευτέρα, οι Financial Times ανακοίνωσαν συμφωνία με το OpenAI. Η FT αδειοδοτεί την παγκόσμιας κλάσης δημοσιογραφία της…

Απρίλιος 30 2024

Ηλεκτρονικές πληρωμές: Δείτε πώς οι υπηρεσίες ροής σας κάνουν να πληρώνετε για πάντα

Εκατομμύρια άνθρωποι πληρώνουν για υπηρεσίες ροής, πληρώνοντας μηνιαίες συνδρομές. Είναι κοινή γνώμη ότι…

Απρίλιος 29 2024

Διαβάστε την Καινοτομία στη γλώσσα σας

Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.

Seguici