Laravel est un framework PHP populaire qui fournit de nombreuses fonctions et outils utiles, l'une des fonctionnalités importantes étant le remplissage des données. Le remplissage des données fait référence au remplissage des données dans la table de la base de données avec des valeurs prédéfinies pour les tests et le développement. Cet article explique comment utiliser la fonction de remplissage de données de Laravel.
1. Préparation
Avant d'utiliser la fonction de remplissage de données de Laravel, vous devez créer une table de base de données et un modèle Eloquent. Voici un exemple simple :
php artisan make:model User -m
La commande ci-dessus créera un modèle Utilisateur
et un fichier de migration de base de données xxxx_xx_xx_xxxxxx_create_users_table.php
dans le répertoire app
>. Nous devons définir la structure de la table dans le fichier de migration : 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
Cela créera une table de données nomméeusers
. 2. Remplissage des donnéesLaravel fournit une commande db:seed
pour remplir les données. Nous pouvons créer une classe Seeder dans le répertoire database/seeds
, hériter de la classe IlluminateDatabaseSeeder
et implémenter la méthode run
. 🎜🎜Voici un exemple simple UserSeeder.php
: 🎜rrreee🎜Le code ci-dessus utilise le modèle d'usine de Laravel pour générer 50 modèles User
et les stocke dans le milieu de la base de données. 🎜🎜Dans la méthode run
, nous pouvons utiliser le générateur de requêtes de Laravel et le modèle Eloquent pour faire fonctionner la base de données. Dans cet exemple, nous utilisons la fonction factory
pour créer 50 instances de modèle User
et les enregistrer dans la base de données. 🎜🎜3. Appeler Seeder🎜🎜Après avoir créé la classe Seeder, nous devons l'appeler pour remplir les données. Nous pouvons appeler toutes les données qui doivent être renseignées dans le fichier database/seeds/DatabaseSeeder.php
. Cette classe est un seeder principal, qui est utilisé pour appeler d’autres classes seeder. 🎜rrreee🎜Après avoir appelé la classe UserSeeder
, nous pouvons exécuter la commande db:seed
via la ligne de commande pour remplir les données : 🎜rrreee🎜Cette commande trouvera automatiquement tous défini les classes Seeder
et exécute leurs méthodes run
. 🎜🎜4. Utilisation de Factory🎜🎜Dans l'exemple ci-dessus, nous avons utilisé le modèle d'usine de Laravel pour générer 50 instances de modèle Utilisateur
. Le modèle d'usine de Laravel peut nous aider à générer facilement les données nécessaires aux tests et au développement. 🎜🎜Nous pouvons créer des modèles en utilisant les méthodes make
et create
. La méthode make
est utilisée pour créer une instance de modèle temporaire qui n'est pas enregistrée dans la base de données, et la méthode create
est utilisée pour créer une instance de modèle qui est enregistrée dans la base de données. . 🎜🎜Dans Laravel, nous pouvons utiliser la classe Factory
pour définir, enregistrer et utiliser des usines. L'utilisation de la classe Factory
est très simple. Il suffit de créer un fichier factory dans le répertoire database/factories
et de définir un modèle et sa configuration via le . définir la propriété
. Voici un exemple simple UserFactory.php
: 🎜rrreee🎜Dans cet exemple, nous utilisons la classe Faker
pour générer des données de modèle aléatoires afin de simuler des données utilisateur réelles. Cette fabrique définit trois attributs : name
, email
et password
. 🎜🎜Lorsque nous avons besoin d'utiliser cette usine, nous pouvons utiliser le code suivant : 🎜rrreee🎜Cela créera une nouvelle instance de modèle Utilisateur
et l'enregistrera dans la base de données. Nous pouvons également utiliser la méthode make
pour créer une instance de modèle qui n'est pas enregistrée dans la base de données : 🎜rrreee🎜Cette instance de modèle contiendra des valeurs de propriété générées aléatoirement, que nous pourrons utiliser dans les tests et le développement. 🎜🎜5. Résumé🎜🎜Laravel fournit une fonction de remplissage de données pratique. Nous pouvons utiliser Seeder pour générer des données de test et utiliser le mode usine pour générer des instances de modèle. Avec cette fonctionnalité, nous pouvons facilement remplir les tables de base de données pour faciliter les tests et le développement. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!