Светильники yii2 не работают должным образом

У меня проблема с приборами в yii2, я только что создал все необходимые файлы в соответствии с этим документом, но он не работает. позвольте мне объяснить, у меня есть модуль с именем Authyii и внутри этого модуля у меня есть модель с именем пользователя. это моя структура каталогов:

мой файл фикстуры выглядит так:

namespace app\modules\Authyii\tests\fixtures;


use app\modules\Authyii\models;
use yii\test\ActiveFixture;
use yii\test\Fixture;

class UserFixture extends ActiveFixture
{
    public $modelClass = 'app\modules\Aythyii\models\User';
    public $tableName = 'authyii_user';

}

это моя командная строка:

но после ввода "да" и командной строки:

но когда я проверяю свою базу данных, в таблицах authyii_user нет новой записи. что я пропустил?

2 ответа

Файл User.php ID данных dir должен иметь имя таблицы authyii_user.php, В рамках исходного кода в файле ActiveFixture.php строка с кодом:

$dataFile = dirname($class->getFileName()) . '/data/'
    . $this->getTableSchema()->fullName . '.php';

С наилучшими пожеланиями.

Есть метод getFixturesConfig() в \vendor\yiisoft\yii2\console\controllers\FixtureController.php

private function getFixturesConfig($fixtures)
{
    $config = [];

    foreach ($fixtures as $fixture) {

        $isNamespaced = (strpos($fixture, '\\') !== false);
        $fullClassName = $isNamespaced ? $fixture . 'Fixture' : $this->namespace . '\\' . $fixture . 'Fixture';

        if (class_exists($fullClassName)) { // <<< I think you lose your UserFixture here
            $config[] = $fullClassName;
        }
    }

    return $config;
}

Вы должны проверить, что $fullClassName Yii ожидает, что это будет (например, регистрация или повторение этого) и настроить ваш UserFixtureпространство имён соответственно.

Другие вопросы по тегам