Laravelのデータフィル機能の使い方

PHPz
リリース: 2023-04-19 10:50:35
オリジナル
997 人が閲覧しました

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 という名前のデータ テーブルが作成されます。

2. データの充填

Laravel には、データを充填するための

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();
    }
}
ログイン後にコピー
上記のコードは、Laravel のファクトリ パターンを使用して 50 個の

User モデルを生成し、保存しますそれらをデータベースに追加します。

run メソッドでは、Laravel のクエリ ビルダーと Eloquent モデルを使用してデータベースを操作できます。この例では、factory 関数を使用して 50 個の User モデル インスタンスを作成し、データベースに保存します。

3. Seeder の呼び出し

Seeder クラスを作成した後、それを呼び出してデータを入力する必要があります。

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 メソッドを実行します。

4. Factoryの使用

上の例では、Laravelのファクトリーパターンを使用して、50個の

Userモデルインスタンスを生成しました。 Laravelのファクトリーパターンは、テストや開発に必要なデータを簡単に生成するのに役立ちます。

モデルは、

make メソッドと create メソッドを使用して作成できます。 make メソッドはデータベースに保存されない一時的なモデル インスタンスを作成するために使用され、create メソッドはデータベースに保存されるモデル インスタンスを作成するために使用されます。

Laravel では、

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-&gt;define(User::class, function (Faker $faker) {     return [         'name' =&gt; $faker-&gt;name,         'email' =&gt; $faker-&gt;unique()-&gt;safeEmail,         'password' =&gt; bcrypt('password'),     ]; });</pre><div class="contentsignin">ログイン後にコピー</div></div> この例では、

Faker

クラスを使用してランダム モデル データを生成し、実際のユーザー データをシミュレートします。このファクトリは、nameemail、および 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)-&gt;make();</pre><div class="contentsignin">ログイン後にコピー</div></div>このモデル インスタンスには、ランダムに生成された属性値が含まれており、テストやテストで使用できます。発達 。

5. まとめ

Laravel には便利なデータ充填機能があり、Seeder を使用してテストデータを生成し、ファクトリモードを使用してモデルインスタンスを生成できます。この機能を使用すると、テストと開発を容易にするためにデータベース テーブルに簡単にデータを取り込むことができます。

以上がLaravelのデータフィル機能の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート