0

わかりました。Doctrine と Zend を使用する新しいプロジェクトを割り当てました。Doctrine を使用するのはこれが初めてで、Google が何の回答も得られないエラーに遭遇しました。新しいフィールド (VARCHAR 17) をテーブルに追加し、そのテーブルのエンティティに getter/setter 関数を追加してから、orm:generate-proxy を実行しました。

何かを保存しようとすると、次のエラーが発生することを除いて、すべて問題ありません。不明な列タイプの varchar が要求されました。

何かご意見は?

4

2 に答える 2

1

問題は、doctrine アノテーションが基礎となるデータベースについて認識していないことです。したがって、フィールドを長さ17の文字列型としてマークする必要があります。

/**
* mySuperField
* \ORM\Column(name="mySuperField", type="string", length=17)
*/
$mySuperField;

エンティティ プロパティをマップする方法については、Doctrine Basic Mappingも参照してください。

于 2015-06-12T06:45:14.350 に答える
-1

最初に、Doctrine コマンド
orm:generate-entities を使用してエンティティ ファイルに getter/setter 関数を記述し、
orm:schema-tool:update を使用して db テーブルを更新する
ことを学びます。この作業は手動で行うべきではなく、yaml/xml/php スキーマを記述するだけです。そしてそれらを実行します。

Bisna ライブラリを使用して doctrine2 を zf と統合する場合、スキーマ ファイルの場所を記述するために、application.ini ファイルに「adapterClass」および「mappingDirs[]」オプションが必要です。

エンティティ ファイルとスキーマ ファイルでは、varchar の代わりに "string" 型を使用します。私は yaml スキーマを好みます。

username:
  type: string
  length: 17
于 2012-07-26T13:05:11.663 に答える