Jestem nowy w ramach Yii. Chcę zasiać moją bazę danych, tak jak można to zrobić w frameworku Laravel za pomocą Fakera. Próbowałem tego http://www.yiiframework.com/forum/index.php/topic/59655-how-to-seed-yii2-database/, ale nie zapewnia wiele szczegółów. Byłbym bardzo wdzięczny, gdyby ktoś mógł mi pomóc w szczegółach.Jak zasiać bazę danych w Yii2?
Odpowiedz
Zobacz na fixtures i realizacji faker w zaawansowanych testów Yii2-app. W projekcie możesz również napisać w konsoli php yii fixture/load
, aby załadować nasiona w bazie danych i php yii fixture/generate-all
, aby wygenerować ziarno przez fakera.
yii.php
powinien mieć prawo fixture
kontroler w controllerMap
tablicy:
[
'controllerMap' => [
'fixture' => [
'class' => 'yii\console\controllers\FixtureController',
'namespace' => 'common\ActiveRecords'
]
]
]
Dzięki za odpowiedź. Stworzyłem nowy plik YiiBasic \ tests \ unit \ templates \ fixtures \ users.php. Poniżej znajduje się treść: Php zwrot [ 'username' => $ faker-> firstName, 'password' => 123456 ]; //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////// Po uruchomieniu polecenia "php yii fixture/generate users". I pojawia się następujący błąd w moim wierszu polecenia: Poniżej terminarz szablony nie stwierdzono: * użytkownicy Brak plików Oprawy szablon dopasowania warunków wejściowych zostały znalezione pod pa C: \ xampp \ htdocs \ YiiBasic/testy/codeception/unit/templates/fixtures –
@FaisalQureshi powinieneś skonfigurować pliki szablonów generatora fakerów dla metody 'generate'. (przykład: 'php yii fixture/templates --templatePath = '@ app/path/to/my/custom/templates''). W przypadku nasion, które polecam, nie korzystam z fakera, lepiej jest wypełnić dane określone przez bazę danych poprawionymi kluczami obcymi, znanymi hasłami, itd. –
Tworzenie polecenia konsoli i użycie Faker'a w kontrolerze poleceń konsoli do rozsiewania bazy danych dla mnie.
Poniżej znajduje się plik SeedController.php
który stworzyłem w folderze polecenia:
// 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();
}
}
}
}
i używane polecenia yii seed
uruchomić sterownik.
Jest to właściwie całkiem dobra metoda tworzenia własnych nasion. Mogłem pomyśleć o tym, Dobra robota! – MDijkstra
- 1. Kod struktury jednostki Najpierw: Jak zasiać bazę danych do testowania jednostkowego
- 2. Jak zasiać generator liczb losowych w Swift?
- 3. Heroku - Jak zaszyfrować bazę danych?
- 4. jak zmniejszyć bazę danych sqlite?
- 5. Jak zrzucić bazę danych mysql?
- 6. Jak odkurzać bazę danych sqlite?
- 7. Sprawdź bazę danych w JPA
- 8. Jak "zaktualizować" bazę danych w świecie rzeczywistym?
- 9. Jak utworzyć własną bazę danych w Redis?
- 10. Jak usunąć bazę danych w aplikacji Android
- 11. Jak stworzyć bazę danych w doktrynie 2
- 12. Jak upuścić bazę danych w heroku clearDB?
- 13. Jak zaimplementować bazę danych w aplikacji PhoneGap?
- 14. Zgłaszający bazę danych Log4j
- 15. Jak zasiewać bazę danych z alikwoterem sql-alchemy
- 16. Konwertuj regularną bazę danych Postgres na przestrzenną bazę danych
- 17. Yii2: jak buforować aktywnego dostawcę danych?
- 18. Jak usunąć wiersze w Yii2?
- 19. Jak usunąć bazę danych z Firebase?
- 20. Jak programowo utworzyć bazę danych sqlite?
- 21. jak przekonwertować bazę danych BDC na sql
- 22. Jak aktualizować lokalną bazę danych parse.com przyrostowo?
- 23. Jak przechowywać bazę danych wewnątrz Arduino?
- 24. Jak zmienić kodowanie bazę danych phpMyAdmin
- 25. Jak mogę zablokować bazę danych sqlite?
- 26. Jak załączyć bazę danych bez pliku LDF?
- 27. Jak synchronizować bazę danych tworzenia i produkcji
- 28. Jak skopiować bazę danych za pomocą HeidiSQL?
- 29. Jak skompresować bazę danych WebSQL z JavaScript
- 30. Jak importować istniejącą bazę danych do zagrody?
Proszę sprawdzić ten -> http://stackoverflow.com/questions/17114708/how-to-seed-in-yii –
Można zbudować [migracja] (http://www.yiiframework.com/doc- 2.0/guide-db-migrations.html) skrypty oparte na rozszerzeniu [yii2-faker] (https://github.com/yiisoft/yii2-faker). –
Dzięki za odpowiedź. Właściwie zamierzam zasiać moją bazę danych danymi fikcyjnymi. Tak jak można to zrobić za pomocą Fakera. –