0

もともと、CodeIgniter セットアップのモデル フォルダーにエンティティ クラス (Doctrine の注釈を含む PHP) がありました。これはあまり良いアイデアではないと判断したので、すべてのエンティティを「エンティティ」フォルダーに移動し、それに応じて Doctrine.php ファイルを更新しました...しかし、Doctrine CLI で実際に何かを実行しようとすると、これが発生しますエラー:

PHP Warning:  require([application path withheld]/application/models/Entities/grocery_CRUD_Model.php): failed to open stream: No such file or directory in [application path withheld]/application/libraries/Doctrine/Common/ClassLoader.php on line 163
PHP Fatal error:  require(): Failed opening required '[application path withheld]/application/models/Entities/grocery_CRUD_Model.php' (include_path='.:/usr/share/pear:/usr/share/php') in [application path withheld]/application/libraries/Doctrine/Common/ClassLoader.php on line 163

Doctrine が正しいディレクトリを探していることはわかっていますが、それでも私grocery_CRUD_Model.phpはそのディレクトリにあるべきだと考えているようです。このファイルは、以前は他のエンティティと同じフォルダーにありましたが、Doctrine の注釈はありませんでした。Doctrine のメタデータ、クエリ、および結果のキャッシュをクリアして、Doctrine がこのファイルを忘れるかどうかを確認してみましたが、役に立ちません。

何が起きてる?なぜ Doctrine はそのファイルを Entities フォルダーに置くことを主張するのですか?

4

1 に答える 1

1

私は答えを見つけました.grepを使用して、何らかのgrocery_CRUD_Modelキャッシュオブジェクトファイルがどこかにあるかどうかを試してみたところ、どういうわけか私のエンティティの1つ(1つだけ、実験していたに違いありません)が拡張されていることがわかりましたgrocery_CRUD_Model

継承を削除したところ、うまくいきました!

于 2013-02-15T21:25:01.030 に答える