グッズ

Laravel Eloquent とは何ですか、その使用方法、例を含むチュートリアル

Laravel PHP フレームワークには、データベースと通信するための非常に簡単な方法を提供する Eloquent Object Relational Mapper (ORM) が含まれています。 

Laravel と Eloquent は、アプリケーションとプラットフォームの開発をスピードアップし、ほとんどの問題に対する適切なソリューションを提供します。 要件は、より迅速な開発と、よく整理された、再利用可能、保守可能、およびスケーラブルなコードによって対処されます。 

Eloquent の仕組み

開発者はで働くことができます Eloquent ActiveMethod 実装を使用して複数のデータベースを効率的に使用します。 これは、Model-View-Controller (MVC) 構造で作成されたモデルがデータベース内のテーブルに対応するアーキテクチャ パターンです。 利点は、モデルが長い SQL クエリをコーディングせずに一般的なデータベース操作を実行できることです。 テンプレートを使用すると、テーブル内のデータをクエリしたり、新しいレコードをテーブルに挿入したりできます。 異なるシステム上で実行されている複数のデータベースを同期するプロセスが簡素化されます。 SQL クエリを記述する必要はありません。 あなたがしなければならないのは、 defiデータベース テーブルとそれらの間の関係を完了すると、Eloquent が残りの作業を実行します。

Laravelの準備

Eloquent ORM の有用性を評価し、エコシステムを理解することは必須です。 開始する手順:

  1. getcomposer.org から Laravel をインストールします。これを行うには、こちらの手順に従ってください
  2. 創造 migration コンソールの使用 Artisan
  3. テンプレートを作成する eloquent
  4. 私を実行します seed データベースの

Artisan Console Laravelに含まれるコマンドラインインターフェースの名前です。 アプリケーションの開発中に使用できる一連の便利なコマンドを提供します。 強力なコンポーネントによって駆動されます Symfony Console.

使用可能なすべての Artisan コマンドのリストを表示するには、list コマンドを使用できます。

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 と down の XNUMX つのメソッドがあります。 up メソッドはデータベースに変更を加える必要があります。 したがって、データベースを移行するたびに、up メソッド内のすべてのコードが実行されます。 一方、down メソッドは、これらのデータベースの変更をロールバックする必要があります。 そのため、実行するたびに rollback migration、 down メソッドは 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

シーダー

全体的なシーダーは、データベースにまったく同じデータを何度も入力できる特別なクラスのセットです。 次のコマンドを実装します。

php artisan make:seeder StudentsRecordSeeder

テキスト エディターで、シード フォルダーの下にある、新しく作成された次のファイル名のファイルを開きます。 StudentsRecordSeeder.php. ご覧のとおり、これは XNUMX つのメソッドが呼び出される非常に単純なクラスです。 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 を使用した CRUD

Laravel Eloquent オブジェクト リレーショナル マッパー (ORM) を使用した CRUD 操作により、Laravel 開発者は複数のデータベースを簡単に操作できます。 作成、読み取り、更新、および削除 (CRUD) 操作を実行し、オブジェクト モデルをデータベース テーブルにマップします。 CRUD 操作に必要なすべてのデータベース対話を処理します。

記録の作成

::create メソッドを使用して、新しいレコードをデータベースに挿入できます。

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

上記の単純な作成方法に加えて、新しいオブジェクトを作成して、さまざまな属性を与えることもできます。 その後、save() 関数を呼び出してコードを実行できます。 のような方法 firstOrCreate()o firstOrNew() は、レコードを作成するためのその他のオプションです。 これらにより、特定の属性を持つ学生を見つけることができます。 その学生が見つからない場合は、データベースに作成するか、新しいインスタンスをインスタンス化します。

読書記録

Eloquent ORM を使用すると、データベース内のレコードを見つけることができます。 クエリはシンプルに構成され、スムーズなフローを提供します。 ステートメントを作成するには::where、メソッドを使用します get() と first(). メソッド first() は XNUMX つのレコードのみを返しますが、メソッドは 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 を使用したレコードの更新も同様に簡単です。 レコードを更新するには、更新するレコードを見つけ、属性を編集して保存します。 たとえば、John Doe の生徒の学年レベルを 5 に変更するには、最初に生徒を見つけてから save メソッドを実行します。

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

save メソッドを使用して、データベースに既に存在するモデルを更新することもできます。

レコードを削除する

Eloquent はレコードの更新プロセスが簡単であることを誇っていますが、削除に関しても同じことが言えます。 XNUMX つのオプションがあります。レコードを取り出して delete メソッドを実行するか、単に destroy メソッドを使用します。 レコードを見つけて削除するには、次のコマンドを実行するだけです。

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

XNUMX つのレコードおよび複数のレコードを削除するには、次のコマンドを実行します。

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

任意のデータベース列を受け入れることができる delete メソッドとは異なり、destroy のパラメーターは主キーのみであることに注意してください。

レベル 10 を超えるすべての生徒を見つけて削除するには。

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
イノベーションニュースレター
イノベーションに関する最も重要なニュースをお見逃しなく。 メールで受け取るにはサインアップしてください。

最近の記事

カターニア総合病院での Apple ビューアによる拡張現実への革新的な介入

Apple Vision Pro 商用ビューアを使用した眼形成手術がカターニア総合病院で行われました。

3月2024

子供のためのぬり絵の利点 - すべての年齢層のための魔法の世界

ぬり絵を通じて細かい運動能力を発達させることで、子供たちは書くなどのより複雑なスキルを習得できるようになります。色…

2月2024

未来はここにあります: 海運業界が世界経済をどのように変革しているか

海軍部門は真の世界経済大国であり、150 億市場に向けて舵を切り続けています...

1月2024

パブリッシャーと OpenAI が人工知能によって処理される情報の流れを規制する契約に署名

先週の月曜日、フィナンシャル・タイムズ紙はOpenAIとの契約を発表した。 FT は世界クラスのジャーナリズムにライセンスを供与しています…

4月30 2024

あなたの言語でイノベーションを読む

イノベーションニュースレター
イノベーションに関する最も重要なニュースをお見逃しなく。 メールで受け取るにはサインアップしてください。

Seguici