标签: faker

Laravel Faker - 创造和制造之间有什么区别

我有以下代码:

$this->actingAs(factory('App\User')->create());

$thread = factory('App\Thread')->make();
Run Code Online (Sandbox Code Playgroud)

create()和make()有什么区别?为什么它没有列在Laravel文档的帮助函数页面中?谢谢!:)

php faker laravel

12
推荐指数
1
解决办法
6109
查看次数

如何在Laravel中实现自己的Faker提供程序

我想在Laravel中为Faker创建一个自定义提供程序(例如,一个用于随机构建名称).

我在哪里将自定义提供程序存储在我的应用程序中以及如何使用它?

php faker laravel laravel-seeding

11
推荐指数
3
解决办法
6765
查看次数

更改faker gem手机号码格式

有没有办法控制faker生成的电话号码的格式?

我打电话的时候:

Faker::PhoneNumber.cell_phone.to_i
Run Code Online (Sandbox Code Playgroud)

我最终得到了错误的价值.

我也想没有扩展.

ruby gem ruby-on-rails faker

9
推荐指数
2
解决办法
5219
查看次数

使用模型工厂,一对一和一对多关系定义Laravel外键,而无需创建不必要的模型

最近,我一直试图通过Model Factories和Faker使用Laravel播种来播种我的数据库.

对于简单的模式,让它工作变得轻而易举:).但是,在处理涉及外键和表关系的复杂数据库模式时,我遇到了一些问题:

  • 一对一
  • 一对多
  • 多对多

...就像链接中描述的那样: 模型工厂中的Laravel 5.1外键.

在本主题中,官方文档建议运行如下数据库种子:

public function run()
{
    factory(App\User::class, 50)->create()->each(function ($u) {
        $u->posts()->save(factory(App\Post::class)->make());
    });
}
Run Code Online (Sandbox Code Playgroud)

...但是这个解决方案存在一个问题:当处理许多数据库表并运行许多种子(它们之间有许多关系)时,使用这种方法创建许多不必要的模型是很常见的.例如,如果我们在上面的示例之前运行了PostsTableSeeder.php,那么所有这些帖子都不会链接到用户,并且永远不会用于测试和开发......

为了找到处理这种情况的方法,我找到了一个适合我的功能解决方案,避免了那些'孤儿'模型的不必要的创建......

我想与大家分享,所以在答案中只是解释:).

php faker laravel laravel-5 laravel-seeding

9
推荐指数
3
解决办法
5468
查看次数

如何使用Rails Faker gem生成连贯的数据?

为了用假数据填充我的Rails应用程序,我经常这样做:

person = Person.create(
  :first_name   => Faker::Name.first_name,
  :last_name    => Faker::Name.last_name,
  :email        => Faker::Internet.email
)
Run Code Online (Sandbox Code Playgroud)

这可能会产生person如下:

名字:Olivia

姓氏:Kubera

电子邮件:milan_nieklauson@bachmannjacob.net

有没有办法生成更连贯的假数据,如:

名字:Olivia

姓氏:Kubera

电子邮件:olivia_kubera@aol.com

或者我是否必须拿出自己的东西来实现这一目标?

ruby ruby-on-rails faker

8
推荐指数
1
解决办法
6156
查看次数

我们应该在Rails工厂中使用Faker吗?

我喜欢Faker,我一直用它seeds.rb来用真实的数据填充我的开发环境.

我也刚刚开始使用Factory Girl,这也节省了大量时间 - 但是当我在网络上搜索代码示例时,我没有看到很多人将两者结合起来的证据.

问:为什么人们不在工厂使用faker有充分的理由吗?

我的感觉是,通过这样做,我会通过随机播种随机但可预测的数据来增加我的测试的稳健性,这有望增加错误弹出的可能性.

但也许这是不正确的,并且没有任何好处比硬编码工厂或我没有看到潜在的陷阱.是否应该或不应该合并这两颗宝石有充分的理由吗?

ruby ruby-on-rails faker factory-bot

8
推荐指数
2
解决办法
1643
查看次数

Rspec控制器测试失败了撇号字符?

现在我使用"Faker"公司名称进行单元测试失败.

看起来好像expect(response.body).to match(@thing.name)搞砸了.

在查看错误时,Faker公司的名称有时会包含"O'Brian Company"或"O'Hare Company"或类似名称.

faker是编码字符串吗?因为我知道匹配编码的字符串不是一个好主意,我真的不想只在Factory im中指定一个特定的公司名称.

谢谢

factory rspec ruby-on-rails faker

8
推荐指数
1
解决办法
968
查看次数

Bogus C# - 如何在不为每个属性列出 RuleFor 的情况下获得完全随机的对象?

使用 C# Bogus 库,我想生成完全随机的对象,而无需显式枚举所有字段作为 RuleFor。

我如何配置我的 Faker 来实现这一目标?

.net c# faker bogus

8
推荐指数
1
解决办法
4907
查看次数

PHP 文档块中的注释 @template 意味着什么?

我可以在FakerPHP/Faker包中看到这个 PHPDoc 块,但我不知道这是什么@template意思?您可以在该行的包的主分支中找到它

/**
 * @template T of Extension\Extension
 *
 * @param class-string<T> $id
 *
 * @throws ContainerExceptionInterface
 * @throws Extension\ExtensionNotFound
 *
 * @return T
 */
Run Code Online (Sandbox Code Playgroud)

php documentation phpdoc docblocks faker

8
推荐指数
1
解决办法
4663
查看次数

Laravel 5.1外键模型工厂

如何在模型工厂中定义外键.例如,如果我有一个组织表,其中包含国家/地区表的外键,则在我的模型工厂中,我必须为国家/地区ID定义虚拟值,如下所示:

$factory->define(App\Organisation::class, function ($faker) {
   return [
      'name' => $faker->company,
      'country_id' => 197,
   ];
});
Run Code Online (Sandbox Code Playgroud)

在我的组织表中播种器类我正在做以下但是faker对象不存在 - 我需要在播种器类中创建一个新的faker对象吗?

use Illuminate\Database\Seeder;

class OrganisationsTableSeeder extends Seeder
{

   public function run()
   {
      $countryIds = Country::lists('id')->all();

      factory('App\Organisation', 3)->create([
        // override factory default
        'country_id' => $faker->randomElement[$countryIds],
    ]);
   }
}
Run Code Online (Sandbox Code Playgroud)

数据库播种者类

class DatabaseSeeder extends Seeder
{
     public function run()
     {

        Model::unguard();

        $this->call('CountriesTableSeeder');
        $this->call('OrganisationsTableSeeder');

        Model::reguard();
     }
}
Run Code Online (Sandbox Code Playgroud)

什么是定义模型工厂时定义外键的最佳方法?是否可以从模型工厂中省略country_id并将其添加到播种器类中 - 从文档中可以看出,您只能覆盖模型工厂中定义的现有值,但是您无法通过播种器类添加新值 - 正确我,如果我错了?

foreign-keys seeding faker laravel-5.1

7
推荐指数
1
解决办法
3409
查看次数