0

嗨,我想创建自己的自定义方法,可以在迁移类中使用。我的意思是这样的:

迁移特征文件.php

trait MigrationTrait {
    public function addAdditionalTable() {
        ...
    }

版本XXX.php

class VersionXXX {
    use MigrationTrait;
    public function up() {
        $this->addAdditionalTable()
    }

所以特征应该 addSql 在我的迁移类中创建表。任何想法?

4

1 回答 1

0

由于特征没有/不应该有任何上下文,你传入一个参数:

特征:

use Doctrine\DBAL\Migrations\AbstractMigration;

trait MigrationTrait {
    public function addAdditionalTable(AbstractMigration $migration) {
        $migration->addSql('...');
    }
}

版本:

use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;

class VersionXXX extends AbstractMigration {
    use MigrationTrait;
    public function up(Schema $schema) {
        $this->addAdditionalTable($this)
    }
}
于 2016-12-08T21:33:04.787 回答