Светильники 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
пространство имён соответственно.