2016-01-25 12 views
5

Я новичок в системе Yii. Я хочу засеять мою базу данных, как это можно сделать в рамках Laravel, используя Faker. Я пробовал это http://www.yiiframework.com/forum/index.php/topic/59655-how-to-seed-yii2-database/, но он не дает подробностей. Я бы очень признателен, если кто-то может помочь мне с деталями.Как загрузить базу данных в yii2?

+0

Пожалуйста, проверьте это -> http://stackoverflow.com/questions/17114708/how-to-seed-in-yii –

+0

Вы можете создать [миграцию] (http://www.yiiframework.com/doc- 2.0/guide-db-migrations.html) на основе расширения [yii2-faker] (https://github.com/yiisoft/yii2-faker). –

+0

Спасибо за ответ. Я действительно ищу, чтобы засеять мою базу данных фиктивными данными. Как это можно сделать с помощью Faker. –

ответ

4

См. В fixtures и реализация фейкера в тестах yii2-app-advanced. В проекте вы также можете написать в консоли php yii fixture/load для загрузки семян в базу данных и php yii fixture/generate-all для генерации семян подделкой.

yii.php должны иметь правильный fixture контроллер в controllerMap массиве:

[ 
    'controllerMap' => [ 
     'fixture' => [ 
      'class' => 'yii\console\controllers\FixtureController', 
      'namespace' => 'common\ActiveRecords' 
     ] 
    ] 
] 

See more info in documentation.

+0

Спасибо за ответ. Я создал новый файл YiiBasic \ tests \ unit \ templates \ fixtures \ users.php. Ниже приводится содержание: $ faker-> ПгвЬЫат, 'пароля' => 123456 ]; //////////////////////////////////////////////// ///////////// И после запуска команды «php yii fixture/generate users». Я получаю следующее сообщение об ошибке в моей командной строке: следующие светильники шаблонов не были найдены: * пользователи Нет светильники шаблонных файлов, соответствующих входные условия не были найдены при ра C: \ XAMPP \ HTDOCS \ YiiBasic/тесты/codeception/unit/templates/fixtures –

+0

@FaisalQureshi вам следует настроить файлы шаблонов генератора-генератора для метода 'generate'. (пример: 'php yii fixture/templates --templatePath = '@ app/path/to/my/custom/templates''). Для семян я рекомендую не использовать faker, лучше заполнять данные, определенные базой данных, с исправленными внешними ключами, известными паролями и т. Д. –

8

Создание консольной команды и использование Faker внутри консольного командного контроллера для обработки базы данных для меня.
Ниже приводится SeedController.php файл, который я создал в папке команд:

// commands/SeedController.php 
namespace app\commands; 

use yii\console\Controller; 
use app\models\Users; 
use app\models\Profile; 

class SeedController extends Controller 
{ 
    public function actionIndex() 
    { 
     $faker = \Faker\Factory::create(); 

     $user = new Users(); 
     $profile = new Profile(); 
     for ($i = 1; $i <= 20; $i++) 
     { 
      $user->setIsNewRecord(true); 
      $user->user_id = null; 

      $user->username = $faker->username; 
      $user->password = '123456'; 
      if ($user->save()) 
      { 
       $profile->setIsNewRecord(true); 
       $profile->user_id = null; 

       $profile->user_id = $user->user_id; 
       $profile->email = $faker->email; 
       $profile->first_name = $faker->firstName; 
       $profile->last_name = $faker->lastName; 
       $profile->save(); 
      } 
     } 

    } 
} 

И использовали yii seed команду для запуска контроллера.

+1

Это на самом деле неплохой метод создания ваших собственных семян. Мог бы подумать об этом, Хорошая работа! – MDijkstra

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

  • Нет связанных вопросов^_^