0

こんにちは、移行クラスで使用できる独自のカスタム メソッドを作成したいと思います。私はこのようなことを意味します:

MigrationTraitFile.php

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

VersionXXX.php

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

そのため、移行クラスで Table を作成するには、この特性で 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 に答える