2

私が理解しようとしているのは、Doctrine2 で Symfony2 を使用して、テーブルに新しいフィールドを追加する方法です。

これを使用して、最初にエンティティを作成しました。

php app/console doctrine:generate:entity --entity="MyMainBundle:ImagesTable" --fields="title:string(100) file:string(100)"

そして、これを使用してデータベース上のテーブルを作成/更新しました:

php app/console doctrine:schema:update --force

エンティティに新しいフィールドを追加したい場合、ImagesTableを使用して簡単に行う方法はありますconsoleか、それともエンティティを手動で編集する必要がありますか? 現在、例として 1 つのエンティティを使用していますが、実際には変更するエンティティが多数あります。したがって、それを行うためのより簡単な方法が必要です。

私はそれらを手動で編集して関係を作成してきたので、それを行う簡単な方法もあればそれは素晴らしいことです.

Symfony1.4 ではこれがずっと簡単だったことを覚えています。phpMyAdmin を使用してデータベース/テーブルを作成するだけで、Symfony は問題なくモデルを生成できました。

変更ごとにすべてのエンティティを手動で編集する必要がある場合、これは機能しないため、ここで何かが欠けていることを本当に願っています。

4

1 に答える 1

1

Doctrine ジェネレーター コマンドは、開発者がアイデアをすばやくプロトタイプ化するのに役立つことを目的としています。通常、これらは本番環境に対応したコードを生成しないため、必要なものが含まれているかどうかを確認するためにコードをチェックする必要があります。

phpmyadmin でモデルを作成し、Doctrine リバース エンジニアリング ツールを使用することはできますが、プロトタイピングでの使用のみを目的とした、本番環境ですぐに使えるコードを生成することはできません。

事前にデータベース/テーブルを作成することは、Doctrine2 ではうまく機能しません。テーブル間の基本的な関係が、モデルのオブジェクト間の関係と同じではない可能性があるためです。ORM の要点は、クラスで考え、Doctrine に残りの作業を任せることです。

Doctrine はエンティティを作成することを意図したものではなく、データ モデルを構築するためのツールを提供し、それを使用して Php でモデルをコーディングします。

エンティティを手作業でコーディングするのが好きではない場合 (doctrine を使用するすべての開発者がそうです)、PHP 用の設定不要の ORM フレームワークであるRedbeanPHPを検討することをお勧めします。使用するデータ モデルに応じて、データベース テーブル、列、インデックスをオンザフライで作成します。

于 2012-04-12T03:28:35.607 に答える