1

我在 yii2 中的固定装置有问题,我刚刚根据此文档创建了所有必需的文件,但它不起作用。让我解释一下,我有一个名为 Authyii 的模块,在这个模块内我有一个名为 User 的模型。这是我的目录结构: 在此处输入图像描述

我的夹具文件是这样的:

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 表中没有新记录。我错过了什么?

4

2 回答 2

1

文件User.phpid 数据目录必须有表名authyii_user.phpActiveFixture.php在带有代码的文件行中的框架源代码中:

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

此致。

于 2015-03-13T23:02:18.153 回答
0

在 \vendor\yiisoft\yii2\console\controllers\FixtureController.php 中有方法 getFixturesConfig()

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;
}

你应该检查$fullClassNameYii 的期望(例如记录或回显它)并UserFixture相应地调整你的命名空间。

于 2014-12-04T12:21:43.307 回答