2014-11-09 22 views
1

yii2의 비품에 문제가 있습니다. 방금 this document에 따라 필요한 모든 파일을 만들었지 만 작동하지 않습니다. 내가 설명하자면 Authyii라는 모듈이 있고이 모듈 안에 User라는 모델이 있습니다. 이 enter image description hereyii2 비품이 제대로 작동하지 않습니다.

내 고정 파일은 다음과 같이됩니다 : 명령 행 말한다 enter image description here

그러나 나는 '예'를 입력 후이 내 명령 라인

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

} 

이 내 디렉토리 구조 : enter image description here

하지만 내 데이터베이스를 검사 할 때 authyii_user 내부에는 새 레코드가 없습니다. 테이블. 나는 무엇을 놓쳤는가?

+0

'app \ modules \ Aythyii \ models \ User'네임 스페이스가 맞습니까? "Aythyii"를 "Authyii"로 변경하십시오 –

+0

@RaminMousavi 귀하의 관심에 감사드립니다, 나는 오타를 바로 잡았지만 문제는 여전히 존재합니다. –

답변

0

는 \ 공급 업체에 getFixturesConfig() 메소드가 \ yiisoft \ yii2 \ 콘솔 \ 컨트롤러 \ 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; 
} 

당신은 YII (예 : 로깅하거나 메아리)가 될 것으로 기대하고 무엇을 $fullClassName 확인해야합니다 그에 따라 UserFixture의 네임 스페이스를 조정하십시오.

1

파일 User.php id 데이터 디렉토리의 테이블 이름은 authyii_user.php이어야합니다.

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

감사합니다 : 코드 파일 ActiveFixture.php 라인의 프레임 워크의 소스 코드에서.

관련 문제