Laravel は、多くの便利な機能とツールを提供する人気のある PHP フレームワークであり、重要な機能の 1 つはデータの入力です。データの入力とは、テストと開発のために、データベース テーブルのデータにいくつかの事前定義された値を入力することを指します。この記事ではLaravelのfill data関数の使い方を紹介します。
1. 準備
Laravelのデータ充填機能を使用する前に、データベーステーブルとEloquentモデルを作成する必要があります。以下は簡単な例です:
php artisan make:model User -m
上記のコマンドは、User
モデルとデータベース移行ファイル xxxx_xx_xx_xxxxxx_create_users_table.php# を
app ディレクトリに作成します。 .##。移行ファイルでテーブル構造を定義する必要があります:
public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
php artisan migrate
users という名前のデータ テーブルが作成されます。
db:seed コマンドが用意されています。
database/seeds ディレクトリに Seeder クラスを作成し、
Illuminate\Database\Seeder クラスを継承して、
run メソッドを実装できます。
UserSeeder.php:
use Illuminate\Database\Seeder; use App\User; class UserSeeder extends Seeder { public function run() { factory(User::class, 50)->create(); } }
User モデルを生成し、保存しますそれらをデータベースに追加します。
run メソッドでは、Laravel のクエリ ビルダーと Eloquent モデルを使用してデータベースを操作できます。この例では、
factory 関数を使用して 50 個の
User モデル インスタンスを作成し、データベースに保存します。
database/seeds/DatabaseSeeder.php ファイルに入力する必要があるすべてのデータを呼び出すことができます。このクラスはメイン シーダーであり、他のシーダー クラスを呼び出すために使用されます。
use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { public function run() { $this->call(UserSeeder::class); } }
UserSeeder クラスを呼び出した後、コマンド ラインから
db:seed コマンドを実行してデータを入力できます。
php artisan db:seed
Seeder クラスから自動的に検索され、その
run メソッドを実行します。
Userモデルインスタンスを生成しました。 Laravelのファクトリーパターンは、テストや開発に必要なデータを簡単に生成するのに役立ちます。
make メソッドと
create メソッドを使用して作成できます。
make メソッドはデータベースに保存されない一時的なモデル インスタンスを作成するために使用され、
create メソッドはデータベースに保存されるモデル インスタンスを作成するために使用されます。
Factory クラスを使用してファクトリーを定義、登録、使用できます。
Factory クラスの使用は非常に簡単で、
database/factories ディレクトリにファクトリ ファイルを作成し、
define# を通じてモデルとその属性を定義するだけです。 ## 方法。簡単な例 UserFactory.php
: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use Faker\Generator as Faker;
use App\User;
$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => bcrypt('password'),
];
});</pre><div class="contentsignin">ログイン後にコピー</div></div>
この例では、
クラスを使用してランダム モデル データを生成し、実際のユーザー データをシミュレートします。このファクトリは、name
、email
、および password
の 3 つの属性を定義します。 このファクトリを使用する必要がある場合は、次のコードを使用できます:
use App\User; $user = factory(User::class)->create();
これにより、新しい
User モデル インスタンスが作成され、データベースに保存されます。 make
メソッドを使用して、データベースに保存されないモデル インスタンスを作成することもできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use App\User;
$user = factory(User::class)->make();</pre><div class="contentsignin">ログイン後にコピー</div></div>
このモデル インスタンスには、ランダムに生成された属性値が含まれており、テストやテストで使用できます。発達 。
5. まとめ
Laravel には便利なデータ充填機能があり、Seeder を使用してテストデータを生成し、ファクトリモードを使用してモデルインスタンスを生成できます。この機能を使用すると、テストと開発を容易にするためにデータベース テーブルに簡単にデータを取り込むことができます。
以上がLaravelのデータフィル機能の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。