Hey Yii2 Team,
thanks for the nice work you put into the framework.
But somehow i cant generate demo data.
i have this layout: /console/tests/unit/templates/fixutres/user.php which just contains:
return [
'username' => $faker->userName,
'auth_key' => Yii::$app->getSecurity()->generateRandomString(),
'password_hash' => Yii::$app->getSecurity()->generatePasswordHash('password_' . $index),
'email' => $faker->email,
'role' => 10,
'status' => 1,
'created_at' => $faker->unixTime($max = 'now'),
'updated_at' => $faker->unixTime($max = 'now'),
];
and in my console/config/main.php i added
Yii::setAlias('tests', dirname(dirname(__DIR__)) . '/console/tests');
runnning gii fixtures/generate gives me this:
max@Dell:/var/www/professionalworks/src$ ./yii fixture/generate user
Fixtures will be generated under the path:
/var/www/professionalworks/src/console/tests/unit/fixtures/data
Templates will be taken from path:
/var/www/professionalworks/src/console/tests/unit/templates/fixtures
* user
Generate above fixtures? (yes|no) [no]:yes
The following fixtures template files were generated:
* user
now i have the data generated under /unit/fixtures/data/user.php:
<?php
return [
[
'username' => 'schaefer.kaitlyn',
'auth_key' => 'QTVYTZ9afHdYqE2d4OIalqwegiD-3nFs',
'password_hash' => '$2y$13$ipatHgHnxP0fobVAac44fevbow/Se.7nlzkyEbwBvTQhAQQ3KbgRq',
'email' => 'david21@shanahanstrosin.com',
'role' => 10,
'status' => 1,
'created_at' => 618287548,
'updated_at' => 1295739757,
],
[
'username' => 'bailey.georgiana',
'auth_key' => 'cjwBETKVeSd4LO-nzcfkJghLFojI7eY5',
'password_hash' => '$2y$13$th5SiGxOqA1QmXL8ndtAquRZB79kV3V8QIp9oexElVmRxcugRlQKO',
'email' => 'mohr.michele@hotmail.com',
'role' => 10,
'status' => 1,
'created_at' => 901388457,
'updated_at' => 1032001226,
],
];
and i created an UserFixture.php File in fixtures dir containing this:
<?php
namespace console\tests\unit\fixtures;
use yii\test\ActiveFixture;
class UserFixture extends ActiveFixture {
public $modelClass = 'common\models\User';
}
now if i try to fill the db table with data i get this:
max@Dell:/var/www/professionalworks/src$ ./yii fixture/load user
Some fixtures were not found under path:
/var/www/professionalworks/src/console/tests/unit/fixtures
Check that they have correct namespace "tests\unit\fixtures"
1. user
Error: No files were found by name: "user".
Check that files with these name exists, under fixtures path:
"/var/www/professionalworks/src/console/tests/unit/fixtures".
max@Dell:/var/www/professionalworks/src$
EDIT:
had a name issue! now i can run the command without errror:
max@Dell:/var/www/professionalworks/src$ ./yii fixture/load User
Fixtures namespace is:
tests\unit\fixtures
Global fixtures will be used:
1. yii\test\InitDb
Fixtures below will be loaded:
1. User
Load above fixtures? (yes|no) [no]:yes
Fixtures were successfully loaded from namespace:
"tests\unit\fixtures"
1. yii\test\InitDbFixture
2. tests\unit\fixtures\UserFixture
max@Dell:/var/www/professionalworks/src$
but no user entries were generated in the db…!
any idea why? any help?
thanks max