2011-09-02 2 views
0

Cakephp2.0에서 "Club"이라는 모델이 있고 "ClubsController"에서 액세스하고 있습니다. 나는 $을 시도하는 경우 this-> 클럽 -> 그것은 말한다 내 컨트롤러 내부에서 찾을 수 있습니다 "오류 : 모델 클럽에 대한 데이터베이스 테이블 클럽을 찾을 수 없습니다."스택 추적은 실제 데이터베이스 테이블이"Club"이라는 Cakephp 모델이 전혀 작동하지 않습니다! 예약 키워드?

.....ClubsController.php(7): Model->find('first', Array)

있다 내가 수업 시간에 지정한 "ClubTable"이라는 이름은 $useTable = 'ClubTable'입니다. 이것은 내 모델과 다른 "클럽"이라는 모델을 자동으로 만들고 있다고 믿게합니다. 같은 폴더 구조 : 나는 "Club123 '의 모델 이름으로 Club123.php 내 모델을 변경하는 경우

/app/Model/Club.php 
/app/Plugin/Admin/Controller/ClubsController.php 

지금 여기, 키커입니다. 그럼 컨트롤러에서 난 그냥 $this->loadModel('Club123'); 완벽하게 작동하고 내 모델을로드하고 내 데이터베이스 및 테이블 "ClubTable"에 연결합니다.

"클럽"은 여하튼 예약 키워드입니까?

플러그인을 사용하지 않을 때 (플러그인이/app/Controllers 폴더에서 ClubsController를 만들 때) 문제가 더 혼란 스럽습니다. 문제를 정리해 :

모델 내 플러그인 내부에서 호출 할 때 클럽 찾을 수 없습니다,하지만 모델 Club123이 될 수 있습니다. 모델 클럽은 플러그인 내부에 없을 때 찾을 수 있습니다.

나는 내 머리카락을 꺼내므로 어떤 도움이라도 대단히 감사하겠습니다. 아, 또한/app/tmp/cache/models/폴더에있는 모든 파일을 삭제했습니다.

+0

파일 이름은 애인이어야합니다. 케이크 굽기 기능을 사용하는 이유는 무엇입니까? –

답변

-1

이 질문에 달 동안 죽은 것처럼, 문제의이 종류를 정리합니다 Cake's Bake console를 사용하는 것을 찾을 수 있습니다. "플러그인"을 사용하는 다양한 환경을 처리 할 수있는 CakePHP의 능력은 너무 불투명합니다. CodeIgniter를 사용하여 중첩 된 디렉토리를 만들고 공통된 모델에 쉽게 액세스 할 수있었습니다. 그래서이 문제에 대한 내 해결책은 CodeIgniter로 전환하는 것입니다!

0

명명 규칙을주의 깊게 확인하십시오.

파일 시스템에서 모든 이름은 밑줄을 사용하여 단어를 구분하는 LOWERCASE 여야합니다.

PHP에서는 CamelCase 여야합니다.

나는 모든 것을 정확하게 알고 있는지 확인하기 위해 this part of the book을 다시 읽으라고 제안합니다.

나는 설정하고 모든 것이 : 자동으로 생성됩니다

+1

당신의 대답이 CakePHP 1.3 (및 그 이하)에 대해서는 맞지만, CakePHP 2.0 (MikeMurko가 사용)에 대해서는 올바르지 않습니다. 이 파일 시스템의 이름은 낙타 사례입니다. https://github.com/cakephp/docs/blob/master/en/appendices/2-0-migration-guide.rst – dhofstet

+0

아, 고마워. 나는 그때 많이 도와 줄 수 없다고 생각합니다. – Ivo

관련 문제