ファイル:使用するEntityManagerは、私はこのコードを持っていますが、動作しません
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration,
Doctrine\DBAL\Schema\Schema;
/**
* Auto-generated Migration: Please modify to your need!
*/
class Version20131021150555 extends AbstractMigration
{
public function up(Schema $schema)
{
// this up() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on 'mysql'.");
$this->addSql("ALTER TABLE person ADD tellphone LONGTEXT DEFAULT NULL");
$em = $em = $this->getDoctrine()->getEntityManager();
$persons = $em->getRepository('AutogestionBundle:Person')->fetchAll();
foreach($persons as $person){
$person->setTellPhone($person->getCellPhone());
$em->persist($person);
}
$em->flush();
}
public function down(Schema $schema)
{
// this down() migration is auto-generated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on 'mysql'.");
$this->addSql("ALTER TABLE person DROP tellphone");
}
}
私は新しいフィールドtellphoneに携帯電話で情報を追加しています。
おかげ
を参照してください。これらのメソッドはどのように呼び出されますか?期待される結果と現在の結果は何ですか? – ferdynator
この行にはエラーが発生します $ em = $ this-> getDoctrine() - > getEntityManager(); このファイルにEntityManagerを使用する必要があります。 ありがとう – Zarpele
$ this-> getDoctrine()を呼び出すため、AbstractMigrationクラスにはこのメソッドがありません。 – zuzuleinen