关注【索引目录】服务号,更多精彩内容等你来探索!
Seeders e Factories 是 Laravel 的种子工厂,是一家流行的银行银行,提供测试和创新服务。
这是 Laravel 的一个系列文章,旨在帮助您了解 Laravel 的一些概念。
先决条件:Laravel 12、PHP 8.3、Composer 安装和熟悉 Eloquent 基础知识。
目录
- 普罗洛戈
- 播种者和工厂是什么?
- 为您提供 Seeders e Factory?
- Criando e Utilizando 工厂
- Criando uma工厂
- Criando “陈述” dentro de uma 工厂
- 扫描和使用播种机
- 克里安多·乌姆·塞德
- 执行播种机
- 与工厂的关系
- 结论
- 参考文献
1. 序言
在没有节奏的情况下,在 流行的银行中,你可以使用自己 的口才功能,在生活中和在查询中传递信息 User::create([...]) 。在项目中,所有项目都会 重复出现,但在模拟场景中却 遇到了困难。
以下是有关 Laravel 的问题的详细介绍,以及有关如何快速 Seeders 完成 Factories任务和执行的响应的论坛。
Se assim como a eu do passado você luta para mokar bados, podemos mudar isso!
Neste artigo, você vai aprender :
-
O que são 播种者和工厂 -
如何创建和配置 -
实践中的博阿斯 -
Uso avançado com relacionamentos
2. 播种者和工厂是什么?
正如 Factories 对自动化操作的错误响应一样,对“ Seeders ativar”工厂和银行的响应也同样如此。
Então,我们很快就会为您提供完美的工厂环境。
例如: UserFactory 我们对名称、电子邮件、文档和其他形式的定义进行了定义。 E pode ser criado em Massa!
模型与工厂:嗯 espelho。 模型 precisam dos “fillables” para preencher os Campos no banco de bados,enquanto 工厂 usam esses Campos para gerar bados falsos。
定义为播种者和“ativar”作为工厂和银行的流行。
Factory:由 Faker 图书馆定义的虚假属性(假数据)类。 播种机:在工厂和银行内执行的命令类。
3. 您是否使用 Seeders e Factory?
这是一个明确的说明,它的使用动机是:
-
A criação de bados para teste é muito mais rápida; -
模拟现实主义,代表复杂的场景,考虑模型之间的关系,并在宏大的体积中进行设计; -
São fáceis de manter、再现和附加信息。 -
插入手册时会出现一些错误。 -
Aumentam a confiabilidade na hora de parir para cenários mais composos.
在此过程中,所有的场景都与项目和周围环境保持一致,可以预览与模型相关的内容。 Na hora de fazer os testes , essas coisas são muito valiosas!
4. Criando e utilizando 工厂
对于 Laravel 来说,它是一个非常出色的工具:Artisan。
4.1 Criando uma 工厂
Primeiro vamos criar uma nova Factory no nosso projeto。 Com o artisan você consegue fazer isso de um jeito bem simples:
php artisan make:factory --help
# Description:
# Create a new model factory
# Usage:
# make:factory [options] [--] <name>
# Arguments:
# name The name of the factory
# Options:
# -m, --model[=MODEL] The name of the model
php artisan make:factory UserFactory --model=User
Esse comando irá gerar uma classe database/factories/UserFactory.php, tendo como base a model User, com a seguinte estrutura thinkando uma model User padrão:
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
class UserFactory extends Factory
{
protected $model = User::class;
public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'role' => $this->faker->randomElement(['admin', 'user']),
'password' => bcrypt('password'),
];
}
}
确定服务的属性和价值的方法 definition() 。我没有勇气,没有勇气,没有任何勇气,我 有LaravelFaker的图书馆 ,并且可以在快速的时间里找到主要的帮助。
存在方法是为了准确地说明这一点,但没有任何示例和电子邮件安全。我们将介绍您的提示、数据、文本、间隔时间和 CPF 的编号!
这是最近的事情。 Para ter acesso a ele e outras coisas como RG e CNPJ, basta mudar o valor do APP_FAKER_LOCALE no seu .env para pt_BR e prontinho!
APP_FAKER_LOCALE="pt_BR"
.env.example 的证书是新安装时未出现错误的 APP_FAKER_LOCALE。
聚集 巴西各地的各种文档 。
4.2 Criando“陈述”dentro de uma 工厂
在“工厂” 中 插入操作“状态”的方法与 “模型”不同,例如,使用“管理”操作或使用电子邮件验证或 不 使用“模型”。
Para a construção desses estados, a estrutura será a seguinte:
class UserFactory extends Factory
{
public function isAdmin(): static
{
return $this->state(fn (array $attributes) => [
'role' => 'admin',
]);
}
public function regularUser(): static
{
return $this->state(fn (array $attributes) => [
'role' => 'user',
]);
}
public function unverified(): static
{
return $this->state(fn (array $attributes) => [
'email_verified_at' => null,
]);
}
}
Criados 表示,使用以下方法:
User::factory()
->isAdmin()
->create();
User::factory()
->regularUser()
->unverified()
->create();
Neste bloco de código,criamos dois usuários。第一次定义为“管理”,第二次,通常为“管理”。无需第二步,使用定义的电子邮件来验证。
利用多种手段来实现睾丸控制,允许特定的模拟场景和交易。例如,使用“admin”来授予权限和访问权限。
5. Criando e Utilizando 播种机
Agora que sabemos criar 工厂,vamos para os 播种机。阿西姆是工厂,也是工匠的所在地。
5.1 删除种子
终端基本命令:
php artisan make:seeder --help
#Description:
# Create a new seeder class
#Usage:
# make:seeder <name>
#Arguments:
# name The name of the seeder
php artisan make:seeder UserSeeder
Esse comando irá gerar uma classe database/seeders/UserSeeder.php com a seguinte estrutura:
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run(): void
{
//
}
}
执行方法和 run() 定义银行的方法。
5.2 执行播种机
特定的播种机,或终端设备的使用方式:
php artisan db:seed --class=UserSeeder
所有 Seeders 都是 DatabaseSeeder.php Laravel 项目的一部分。接下来,我们将介绍 接下来的run() 方法 :DatabaseSeeder.php
class UserSeeder extends Seeder
{
public function run()
{
$this->call([
UserSeeder::class
]);
}
}
可以选择由播种者单独播种并直接构建不作为 DatabaseSeeder.php 工厂使用的码头。 Ficando 德萨形式:
class UserSeeder extends Seeder
{
public function run()
{
User::factory()
->isAdmin()
->create();
User::factory()
->regularUser()
->unverified()
->create();
}
}
决定是否删除该项目,然后在没有终端的情况下执行以下命令:
php artisan db:seed
特定于 Seeder 的命令、DatabaseSeeder 或服务的执行,以及与此方法相关的操作 run()。
对于测试者,请使用 Seeder 的合法用途,特别是环境控制的可视化和大多数项目的基本信息,例如 EssentialSeeder。
利用项目示例(包括参考文献),我可以将可视化工具作为信息的可视化工具,以了解 EssentialSeeder 的用途,从而提高企业和企业的能力拥有优惠券编号和使用优惠券的编号。
执行 apenas este Seeder 的全部操作,可以将预览与实际情况结合起来。
6. Relacionamentos com 工厂
应用程序与模型相关。 um usuário que possui um perfil, um pedido de compra que possui muitos por exemplo.
Para criar um usuário que possua um perfil com seus detalhes ligados a ele, iremos utilizar o método has():
User::factory()
->has(Profile::factory())
->unverified()
->create();
注意 que também podemos Combinar com 状态 criados anteriormente。
Agora,我的用户可以通过以下方式进行交流和使用, for() 并 进行投资has()。德斯塔形式:
$user = User::factory()->create();
Profile::factory()
->for($user) // Associa ao usuário criado acima
->create();
7. 结论
Com Seeders e Factories 可能是流行的银行,以一致的形式提供支持,并通过重复的重复代码和连续的过程来建立模型,以方便和快速地测试特定的场景。请务必轻松完成后面的操作!
重要的是,这是一个最重要的事情,它是生命中的艺术技术。请务必使用 Seeders e Factory 的项目进行会议。
关注【索引目录】服务号,更多精彩内容等你来探索!

