我在yii2中遇到灯具问题,我刚刚根据this document创建了所有必需的文件,但它无效。 让我解释一下,我有一个名为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表中没有新记录。 我错过了什么?
答案 0 :(得分:1)
文件User.php
id数据目录必须具有表名authyii_user.php
。在文件ActiveFixture.php
中的框架源代码中,代码为:
$dataFile = dirname($class->getFileName()) . '/data/'
. $this->getTableSchema()->fullName . '.php';
最好的问候。
答案 1 :(得分: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;
}
您应该检查Yii期望它是什么$fullClassName
(例如记录或回显它)并相应地调整UserFixture
的命名空间。