2017-07-27 4 views
1

Ich habe folgende Klasse in Ordner Frontend/MigrationenNamespace fehlt

use yii\db\Schema; 

class m170727_180101_Bewerbungen extends \yii\db\Migration 
{ 
    public function safeUp() 
    { 
     $tableOptions = null; 
     if ($this->db->driverName === 'mysql') { 
      $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB'; 
     } 

     $this->createTable('bewerbungen', [ 
      'bew_id' => $this->primaryKey(), 
      'datum' => $this->date()->notNull(), 
      'firma' => $this->string(100)->notNull(), 
      'rechtsart' => $this->integer(11), 
      'stadt' => $this->string(100)->notNull(), 
      'plz' => $this->integer(11)->notNull(), 
      'strasse_nr' => $this->string(100), 
      'ansprech_person' => $this->string(100), 
      'email' => $this->string(50)->notNull(), 
      'feedback' => $this->integer(11), 
      'bemerkungen' => $this->string(150), 
      'FOREIGN KEY ([[feedback]]) REFERENCES nachricht ([[id_message]]) ON DELETE CASCADE ON UPDATE CASCADE', 
      'FOREIGN KEY ([[rechtsart]]) REFERENCES rechtsform ([[id_recht]]) ON DELETE CASCADE ON UPDATE CASCADE', 
      ], $tableOptions); 

    } 

    public function safeDown() 
    { 
     $this->dropTable('bewerbungen'); 
    } 
} 

Jedes versuchen Methode safeUp auszulesen() wirft Fehler:

Unable to find 'frontend\migrations\m170727_180101_Bewerbungen' in file: E:\xampp\htdocs\Yii2_Mail/frontend/migrations/m170727_180101_Bewerbungen.php. Namespace missing?**

Hier ist mein Skript:

namespace frontend\migrations; ... 

$connect=new m170727_180101_Bewerbungen(); 
$connect->safeUp(); ... 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Was zum Teufel ist das? Der gleiche Fehler wie folgt aus:

$connect=new \frontend\migrations\m170727_180101_Bewerbungen(); 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Antwort

1

Versuchen Sie den vollständigen Pfad mit

$connect=new \frontend\migration\m170727_180101_Bewerbungen(); 
0

Sie diesen Fehler bekommen haben, weil es keinen Namensraum in der Datei ist so Autoloader nicht finden können, es.

Aber das ist nicht das wirkliche Problem hier - Sie verwenden Yii 2 Migration nicht richtig. Folgen Sie der Yii2 Migration Guide.

Da Sie diese Migration auch in frontend platziert haben, sollten Sie vielleicht einen Blick auf Namespaced Migrations werfen, um dort tatsächlich Namespace hinzuzufügen und ihn ordnungsgemäß auszuführen.

Verwandte Themen