Laravel ist ein beliebtes PHP-Framework, das viele nützliche Funktionen und Tools bietet, eine der wichtigen Funktionen ist das Füllen von Daten. Das Füllen von Daten bezieht sich auf das Füllen der Daten in der Datenbanktabelle mit einigen vordefinierten Werten für Tests und Entwicklung. In diesem Artikel wird die Verwendung der Fülldatenfunktion von Laravel vorgestellt.
1. Vorbereitung
Bevor Sie die Datenfüllfunktion von Laravel verwenden, müssen Sie eine Datenbanktabelle und ein Eloquent-Modell erstellen. Hier ist ein einfaches Beispiel:
php artisan make:model User -m
Der obige Befehl erstellt ein Benutzer
-Modell und eine Datenbankmigrationsdatei xxxx_xx_xx_xxxxxx_create_users_table.php
im Verzeichnis app
>. Wir müssen die Tabellenstruktur in der Migrationsdatei definieren: app
目录下创建一个User
模型和一个数据库迁移文件xxxx_xx_xx_xxxxxx_create_users_table.php
。我们需要在迁移文件中定义表结构:
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
的数据表。
二、填充数据
Laravel提供了一个db:seed
命令用于填充数据。我们可以在database/seeds
目录下创建一个Seeder类,继承IlluminateDatabaseSeeder
类,并实现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
模型实例,并将它们保存到数据库中。
三、调用Seeder
创建好了Seeder类之后,我们需要调用它来填充数据。我们可以在database/seeds/DatabaseSeeder.php
文件中调用所有需要填充的数据。这个类是一个主要的seeder,它用于调用其他Seeder类。
use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { public function run() { $this->call(UserSeeder::class); } }
调用UserSeeder
类后,我们可以通过命令行执行db:seed
命令来填充数据:
php artisan db:seed
这个命令会自动找到所有定义的Seeder
类,并运行它们的run
方法。
四、使用Factory
在上面的示例中,我们使用了Laravel的工厂模式来生成50个User
模型实例。Laravel的工厂模式可以帮助我们轻松地生成测试和开发所需的数据。
我们可以使用make
和create
方法创建模型。make
方法用于创建一个临时的、未保存到数据库的模型实例,create
方法用于创建一个保存到数据库的模型实例。
在Laravel中,我们可以使用Factory
类来定义、注册和使用工厂。Factory
类的使用非常简单,我们只需要在database/factories
目录下创建一个工厂文件,通过define
方法定义一个模型及其属性。下面是一个简单的示例UserFactory.php
:
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'), ]; });
在这个示例中,我们使用了Faker
类来生成随机的模型数据,模拟真实的用户数据。这个工厂定义了name
、email
和password
三个属性。
当我们需要使用这个工厂时,我们可以使用以下代码:
use App\User; $user = factory(User::class)->create();
这会创建一个新的User
模型实例,并将其保存到数据库中。我们也可以使用make
use App\User; $user = factory(User::class)->make();
rrreee
Dadurch wird eine Datentabelle mit dem Namenusers
erstellt. 2. Füllen von DatenLaravel bietet einen db:seed
-Befehl zum Füllen von Daten. Wir können eine Seeder-Klasse im Verzeichnis database/seeds
erstellen, die Klasse IlluminateDatabaseSeeder
erben und die Methode run
implementieren. 🎜🎜Hier ist ein einfaches Beispiel UserSeeder.php
: 🎜rrreee🎜Der obige Code verwendet das Factory-Muster von Laravel, um 50 User
-Modelle zu generieren und sie in der Datenbankmitte zu speichern. 🎜🎜In der run
-Methode können wir den Abfrage-Builder und das Eloquent-Modell von Laravel verwenden, um die Datenbank zu betreiben. In diesem Beispiel verwenden wir die Funktion factory
, um 50 Benutzer
-Modellinstanzen zu erstellen und sie in der Datenbank zu speichern. 🎜🎜3. Seeder aufrufen🎜🎜Nachdem wir die Seeder-Klasse erstellt haben, müssen wir sie aufrufen, um Daten einzugeben. Wir können alle Daten, die gefüllt werden müssen, in der Datei database/seeds/DatabaseSeeder.php
aufrufen. Diese Klasse ist ein Haupt-Seeder, der zum Aufrufen anderer Seeder-Klassen verwendet wird. 🎜rrreee🎜Nachdem wir die Klasse UserSeeder
aufgerufen haben, können wir den Befehl db:seed
über die Befehlszeile ausführen, um die Daten einzugeben: 🎜rrreee🎜Dieser Befehl findet automatisch alle definierte Seeder
-Klassen und führt deren run
-Methoden aus. 🎜🎜4. Verwenden von Factory🎜🎜Im obigen Beispiel haben wir das Factory-Muster von Laravel verwendet, um 50 Benutzer
-Modellinstanzen zu generieren. Das Factory-Muster von Laravel kann uns dabei helfen, auf einfache Weise die für Tests und Entwicklung erforderlichen Daten zu generieren. 🎜🎜Wir können Modelle mit den Methoden make
und create
erstellen. Mit der Methode make
wird eine temporäre Modellinstanz erstellt, die nicht in der Datenbank gespeichert wird, und mit der Methode create
wird eine Modellinstanz erstellt, die in der Datenbank gespeichert wird . 🎜🎜In Laravel können wir die Klasse Factory
verwenden, um Fabriken zu definieren, zu registrieren und zu verwenden. Die Verwendung der Klasse Factory
ist sehr einfach. Wir müssen lediglich eine Factory-Datei im Verzeichnis database/factories
erstellen und über den ein Modell und seine Konfiguration definieren define
-Methode. Hier ist ein einfaches Beispiel UserFactory.php
: 🎜rrreee🎜In diesem Beispiel verwenden wir die Klasse Faker
, um zufällige Modelldaten zu generieren, um echte Benutzerdaten zu simulieren. Diese Factory definiert drei Attribute: name
, email
und password
. 🎜🎜Wenn wir diese Fabrik verwenden müssen, können wir den folgenden Code verwenden: 🎜rrreee🎜Dadurch wird eine neue Benutzer
-Modellinstanz erstellt und in der Datenbank gespeichert. Wir können auch die Methode make
verwenden, um eine Modellinstanz zu erstellen, die nicht in der Datenbank gespeichert wird: 🎜rrreee🎜Diese Modellinstanz enthält zufällig generierte Eigenschaftswerte, die wir beim Testen und Entwickeln verwenden können. 🎜🎜5. Zusammenfassung🎜🎜Laravel bietet eine praktische Datenfüllfunktion. Wir können Seeder zum Generieren von Testdaten und den Factory-Modus zum Generieren von Modellinstanzen verwenden. Mit dieser Funktion können wir Datenbanktabellen für einfaches Testen und Entwickeln einfach füllen. 🎜Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Fülldatenfunktion von Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!