2015-04-04 5 views
1

Я пытаюсь выяснить, знает ли кто-нибудь способ выполнить эту задачу. Я хочу попытаться рассказать, сколько из каждого типа роли будет иметь для вставленных пользователей. Таким образом, я могу сказать, что мне нужно только 1 из ролей № 4 и 2 роли №3, а остальное - одно. Я уверен, что будет какая-то дополнительная логика, но не знаю, как это должно быть написано.Faker and 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-х и зафиксировать идентификатор в каждом Еогеасп на основе того, что вам нужно.

<?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) 
      ]); 
     } 

    } 

} 
Смежные вопросы