젠드 프레임 워크 응용 프로그램 도구로 만든 기본 프레임 워크 코드를 사용하고 있습니다. 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를 찾을 수 없다는 오류가 발생하고 파일이 프로젝트라는 이름의 클래스가 포함되어 있지 않습니다.
그 시점에서 프레임 워크 (/../library/)에 의해 설정된 포함 경로에 Projects.php를 배치하고 파일을 찾았으나 이제는 전체 디렉토리 구조를 잃어 버리고 이름을 지정하기 때문에 Default_Model_Projects
에서 Projects
으로 이름을 바꾸어야했습니다. 나는 원래 위치에 파일을 다시 배치하면 일을 모든 것을 얻을, 그리고
protected $_dependentTables = array('Projects');
에
protected $_dependentTables = array('Default_Model_Projects');
을 변경할 수 있어요하지만이 또한 내 ->findProjects()
지금 ->findDefault_Model_Projects()
이되는 것을 의미한다.
findProjects()
을 찾을 때 Default_Model_Projects
을 인스턴스화해야한다고 알리는 방법이 있습니까? Zend Framework에서 누락 된 부분입니까, 아니면 내가 속하지 않은 방식으로 무언가를 구 attempt 주려고합니까? 이 문제를 어떻게 해결하셨습니까?
당신은 tly는 나의 전체 질문을 읽지 않았다 ... –
하하, 미안 :) 나는 그것을 놓쳤다 :) 당신은 이것을 할 수있다 : * public function findProjects() {$ this-> findUgly_Long_Name();} * –