Я новичок в системе Yii. Я хочу засеять мою базу данных, как это можно сделать в рамках Laravel, используя Faker. Я пробовал это http://www.yiiframework.com/forum/index.php/topic/59655-how-to-seed-yii2-database/, но он не дает подробностей. Я бы очень признателен, если кто-то может помочь мне с деталями.Как загрузить базу данных в yii2?
ответ
См. В 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'
]
]
]
Спасибо за ответ. Я создал новый файл YiiBasic \ tests \ unit \ templates \ fixtures \ users.php. Ниже приводится содержание: PHP возвращения [ 'имя пользователя' => $ faker-> ПгвЬЫат, 'пароля' => 123456 ]; //////////////////////////////////////////////// ///////////// И после запуска команды «php yii fixture/generate users». Я получаю следующее сообщение об ошибке в моей командной строке: следующие светильники шаблонов не были найдены: * пользователи Нет светильники шаблонных файлов, соответствующих входные условия не были найдены при ра C: \ XAMPP \ HTDOCS \ YiiBasic/тесты/codeception/unit/templates/fixtures –
@FaisalQureshi вам следует настроить файлы шаблонов генератора-генератора для метода 'generate'. (пример: 'php yii fixture/templates --templatePath = '@ app/path/to/my/custom/templates''). Для семян я рекомендую не использовать faker, лучше заполнять данные, определенные базой данных, с исправленными внешними ключами, известными паролями и т. Д. –
Создание консольной команды и использование 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
команду для запуска контроллера.
Это на самом деле неплохой метод создания ваших собственных семян. Мог бы подумать об этом, Хорошая работа! – MDijkstra
Пожалуйста, проверьте это -> http://stackoverflow.com/questions/17114708/how-to-seed-in-yii –
Вы можете создать [миграцию] (http://www.yiiframework.com/doc- 2.0/guide-db-migrations.html) на основе расширения [yii2-faker] (https://github.com/yiisoft/yii2-faker). –
Спасибо за ответ. Я действительно ищу, чтобы засеять мою базу данных фиктивными данными. Как это можно сделать с помощью Faker. –