2015-04-04 75 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) 
      ]); 
     } 

    } 

}