2017-02-03 5 views
-5

누구의 CakePHP 2.9.5.Getting 오류를 사용하고 내 code.I에 어떤 문제가 있는지 알 수없는 : 당신이 사용하고 있기 때문에 '\ 컨트롤러 \ AppController가이 응용 프로그램'그것이의 AppController는

<?php 
namespace app\Controller; 
use app\Controller\AppController; 

Class ProductsController extends AppController{ 

    public function index() 
    { 
     $prducts = $this->Product->find('all'); 

     print_r($prducts); 
    } 
} 

?> 
+1

디버깅 도움말 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [mcve]를 만드는 방법. –

답변

0

를 찾을 수없는 클래스 컨트롤러의 네임 스페이스가 잘못되었습니다. CakePHP의 컨트롤러는 별도의 네임 스페이스를 가지고 있습니다.

use AppController; 

으로

namespace app\Controller; 
use app\Controller\AppController; 

를 교체하거나이

App::uses('AppController', 'Controller'); 

이 작동합니다 사용합니다.

+0

이것도 작동하지 않습니다. CakePHP 3.x의 적절한 네임 스페이스는 기본적으로'App'이고 upperase는'A'이고 CakePHP 2.x에서는 가져 오기가 패키지 (App :: uses()의 두 번째 인수)를 나타낼 필요가 있습니다. 선택 사항이 아닙니다.),이 경우에는 '컨트롤러'입니다. – ndm

+0

@ndm 예 .. 방금 그걸 놓쳤습니다. 고마워, 나는 대답을 편집했다. 그러나 cake 2.x에서'use AppController'는 잘 동작 할 것입니다. –

+0

필자는 작곡가를 사용할 때조차도 그 참조를로드 할 수있는 오토로더 (명시 적으로 구성하지 않는 한)가 없기 때문에 아무런 효과가 없을 가능성이 높습니다. 아마도'AppController' 클래스/파일이 이미 다른 곳에서 포함 되었기 때문에 간단하게 작동 할 것입니다. – ndm