我在文件夹前端/迁移中有以下课程
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');
}
}
每次尝试读出方法safeUp()都会抛出错误:
无法找到&前端\ migrations \ m170727_180101_Bewerbungen'在文件中:E:\ xampp \ htdocs \ Yii2_Mail / frontend / migrations / m170727_180101_Bewerbungen.php。名称空间缺失?**
这是我的剧本:
namespace frontend\migrations; ...
$connect=new m170727_180101_Bewerbungen();
$connect->safeUp(); ...
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
那到底是什么意思? 使用如下相同的错误:
$connect=new \frontend\migrations\m170727_180101_Bewerbungen();
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
答案 0 :(得分:1)
尝试使用完整路径
$connect=new \frontend\migration\m170727_180101_Bewerbungen();
答案 1 :(得分:0)
您遇到此错误,因为您的文件中没有命名空间,因此自动加载器无法找到它。
但这不是真正的问题 - 你没有正确使用Yii 2迁移。关注Yii2 Migration Guide。
此外,由于您将此迁移放在frontend
中,因此您可能需要查看Namespaced Migrations以实际添加命名空间并正确运行它。