2015-04-04 77 views
1

我想知道是否有人知道一种方法来执行此任务。我想试着告诉插入用户的每种类型的角色。这样我可以说我只需要角色号码3和角色号码4中的其他角色,其余角色是1。我相信会有一些额外的逻辑,但不知道应该如何写这样的东西。Faker和Laravel 5

<?php 

use Illuminate\Database\Seeder; 

// Composer: "fzaninotto/faker": "v1.3.0" 
use Faker\Factory as Faker; 

use App\User; 

class UsersTableSeeder extends Seeder { 

    public function run() 
    { 
     // use the factory to create a Faker\Generator instance 
     $faker = Faker::create(); 

     $roleIds = App\Role::lists('id'); 

     User::create([ 
      'first_name' => 'Me', 
      'last_name' => 'Me', 
      'username' => 'me', 
      'email' => '[email protected]', 
      'password' => 'secret', 
      'active' => 1, 
      'role_id' => 1 
     ]); 

     foreach(range(2, 100) as $index) { 

      User::create([ 
       'first_name' => $faker->firstName, 
       'last_name' => $faker->lastName, 
       'username' => str_replace('.', '_', $faker->unique()->userName), 
       'email' => $faker->email, 
       'password' => $faker->word, 
       'active' => $faker->boolean($chanceOfGettingTrue = 90), 
       'role_id' => $faker->randomElement($roleIds) 
      ]); 
     } 

    } 

} 

回答

3

您可能会尝试使用不同的foreach对于特定数量的role_id,并根据您的需要修复每个foreach中的id。

<?php 

use Illuminate\Database\Seeder; 

// Composer: "fzaninotto/faker": "v1.3.0" 
use Faker\Factory as Faker; 

use App\User; 

class UsersTableSeeder extends Seeder { 

    public function run() 
    { 
     // use the factory to create a Faker\Generator instance 
     $faker = Faker::create(); 

     $roleIds = App\Role::lists('id'); 

     User::create([ 
      'first_name' => 'Me', 
      'last_name' => 'Me', 
      'username' => 'me', 
      'email' => '[email protected]', 
      'password' => 'secret', 
      'active' => 1, 
      'role_id' => 1 
     ]); 

     foreach(range(1, 2) as $index) { 

      User::create([ 
       'first_name' => $faker->firstName, 
       'last_name' => $faker->lastName, 
       'username' => str_replace('.', '_', $faker->unique()->userName), 
       'email' => $faker->email, 
       'password' => $faker->word, 
       'active' => $faker->boolean($chanceOfGettingTrue = 90), 
       'role_id' => 1 
      ]); 
     } 

     foreach(range(1, 3) as $index) { 

      User::create([ 
       'first_name' => $faker->firstName, 
       'last_name' => $faker->lastName, 
       'username' => str_replace('.', '_', $faker->unique()->userName), 
       'email' => $faker->email, 
       'password' => $faker->word, 
       'active' => $faker->boolean($chanceOfGettingTrue = 90), 
       'role_id' => 2 
      ]); 
     } 

     foreach(range(2, 100) as $index) { 

      User::create([ 
       'first_name' => $faker->firstName, 
       'last_name' => $faker->lastName, 
       'username' => str_replace('.', '_', $faker->unique()->userName), 
       'email' => $faker->email, 
       'password' => $faker->word, 
       'active' => $faker->boolean($chanceOfGettingTrue = 90), 
       'role_id' => rand(3,5) 
      ]); 
     } 

    } 

}