Laravel と Eloquent は、アプリケーションとプラットフォームの開発をスピードアップし、ほとんどの問題に対する適切なソリューションを提供します。 要件は、より迅速な開発と、よく整理された、再利用可能、保守可能、およびスケーラブルなコードによって対処されます。
開発者はで働くことができます Eloquent
ActiveMethod 実装を使用して複数のデータベースを効率的に使用します。 これは、Model-View-Controller (MVC) 構造で作成されたモデルがデータベース内のテーブルに対応するアーキテクチャ パターンです。 利点は、モデルが長い SQL クエリをコーディングせずに一般的なデータベース操作を実行できることです。 テンプレートを使用すると、テーブル内のデータをクエリしたり、新しいレコードをテーブルに挿入したりできます。 異なるシステム上で実行されている複数のデータベースを同期するプロセスが簡素化されます。 SQL クエリを記述する必要はありません。 あなたがしなければならないのは、 defiデータベース テーブルとそれらの間の関係を完了すると、Eloquent が残りの作業を実行します。
Eloquent ORM の有用性を評価し、エコシステムを理解することは必須です。 開始する手順:
migration
コンソールの使用 Artisan
eloquent
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
これにより、すべての移行がキャンセルされます。
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
. ご覧のとおり、これは 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 オブジェクト リレーショナル マッパー (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
先週の月曜日、フィナンシャル・タイムズ紙はOpenAIとの契約を発表した。 FT は世界クラスのジャーナリズムにライセンスを供与しています…