首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TestDummy和Faker播种

用TestDummy和Faker播种
EN

Stack Overflow用户
提问于 2015-03-28 20:11:01
回答 1查看 5.3K关注 0票数 1

我正在努力找出我做错了什么和/或一个更好的方法来处理这种情况。

目标:

  • 能够插入自己作为一个用户,也有200个其他用户插入到数据库。
  • 将自己的静态数据插入到单独的配置文件表中,并将所有其他用户的随机数据插入数据库表。
  • 我想知道为什么在控制台中运行我的种子文件时,我总是收到一个InvalidArgumentException未知格式化程序“密码”错误消息。

UsersTableSeeder

代码语言:javascript
复制
<?php

use Illuminate\Database\Seeder;

use Laracasts\TestDummy\Factory as TestDummy;
use App\User;

class UsersTableSeeder extends Seeder {

    public function run()
    {
        User::create([
            'first_name' => 'Secret',
            'last_name' => 'Secret',
            'username' => 'secret',
            'email' => 'secret',
            'password' => 'secret',
        ]);

        TestDummy::times(200)->create('App\User');
    }

}

UserProfilesTableSeeder.php

代码语言:javascript
复制
<?php

use Illuminate\Database\Seeder;

use Laracasts\TestDummy\Factory as TestDummy;
use App\UserProfile;

class UserProfilesTableSeeder extends Seeder {

    public function run()
    {
        UserProfile::create([
            'user_id' => '1',
            'avatar' => 'secret.jpg',
            'bio' => 'This is just my personal biography!',
            'address' => '1234 Secret Lane',
            'city' => 'Secret',
            'state' => 'Secret',
            'postcode' => '12345',
            'country' => 'United States',
            'phone' => '123-456-7890',
            'birthday' => '1988-09-04'
        ]);

        TestDummy::create('App\UserProfile');
    }

}

工厂PHP文件

代码语言:javascript
复制
<?php

$factory('App\User', [
    'first_name' => $faker->firstName,
    'last_name' => $faker->lastName,
    'username' => $faker->userName,
    'email' => $faker->email,
    'password' => $faker->password
]);

$factory('App\UserProfile', [
    'user_id' => 'factory:App\User',
    'bio' => $faker->sentence(100),
    'avatar' => $faker->imageUrl($width = 640, $height = 480),
    'address' => $faker->optional($weight = 0.9)->address,
    'city' => $faker->optional($weight = 0.9)->city,
    'state' => $faker->optional($weight = 0.9)->state,
    'postcode' => $faker->optional($weight = 0.9)->postcode,
    'country' => $faker->optional($weight = 0.9)->country,
    'phone' => $faker->optional($weight = 0.9)->phoneNumber,
    'birthday' => $faker->optional($weight = 0.9)->dateTimeBetween('-40 years', '-18 years')
]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-28 21:04:14

当您从composer软件包安装faker时,这是一个已知的版本问题。请参阅这个github线程

解决此问题的方法是使用格式化程序一词:

代码语言:javascript
复制
//factories
$factory('App\User', [
   'first_name' => $faker->firstName,
   'last_name' => $faker->lastName,
   'username' => $faker->userName,
   'email' => $faker->email,
   'password' => $faker->word
]);

此外,我还建议您对密码进行哈希操作,就像在测试数据中使用哈希方法一样:

代码语言:javascript
复制
App::make('hash')->make($faker->word);  
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29322039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档