Zend Frameworkアプリケーションツールで作成されたデフォルトのフレームワークコードを使用しています。Default_<*>_<*>
というクラスが自動的に正しいディレクトリからロードされるように、いくつかのオートローダーマジックを追加しました。この場合はDefault_Model_TableName
です。Zend_DB_Table_Abstractの関係
<?php
$categories = new Default_Model_ProjectCategories();
$category = $categories->find('1');
$category->findProjects();
:
アプリケーション/モデル/ ProjectCategories.php:
<?php
class Default_Model_ProjectCategories extends Zend_Db_Table_Abstract {
protected $_name = 'categories';
protected $_dependentTables = array('Projects');
}
アプリケーション/モデル/ Projects.php:
<?php
class Default_Model_Projects extends Zend_Db_Table_Abstract {
protected $_name = 'projects';
protected $_referenceMap = array(
'Category' => array(
'columns' => 'cid',
'refTableClass' => 'ProjectCategories',
'refColumns' => 'id',
'onUpdate' => self::CASCADE,
'onDelete' => self::CASCADE,
)
);
}
私は何をしようとしていますと、以下のとおりです。
Projects.phpが見つからないというエラーが表示されたり、ファイルがProjectsという名前のクラスは含まれていません。
その時点で、私はフレームワーク(/../library/)によって設定されたインクルードパスにProjects.phpを配置してファイルが見つかりましたが、今は私のディレクトリ構造全体が失われています。 Default_Model_Projects
からProjects
に名前を変更する必要がありました。私は元の場所に戻ってファイルを置く場合は動作するようにすべてを取得し、
protected $_dependentTables = array('Default_Model_Projects');
に
protected $_dependentTables = array('Projects');
を変更することができる午前これも私の->findProjects()
が今->findDefault_Model_Projects()
なることを意味します。
findProjects()
を照会するときに、Default_Model_Projects
をインスタンス化する必要があると伝える方法はありますか?これはZend Frameworkから抜けているものなのですか、それともそれが属していない方法で何かを細めにしようとしていますか?この問題をどうやって解決しましたか?
あなた私の全体の質問を読んでいない... –
haha、申し訳ありません:)私はそれを逃しました:) * public function findProjects(){$ this-> findUgly_Long_Name();} * –