2017-12-24 28 views
1

그래서 사용자 모델 네임 스페이스가 있습니다Phalcon PHP는 네임 스페이스를 사용하지 못할

namespace App\Models; 

use Phalcon\Mvc\Model; 

class Users extends Model 
{ 

그리고 컨트롤러 :

use \Phalcon\Mvc\Controller; 
use \App\Models\Users; 

class LoginController extends Controller 
{ 
    ... 
    public function postLoginAction() { 
    $user = Users::findFirst([ ... 
    } 
    ... 

항상 점점 오류 치명적인 오류 : catch되지 않은 오류 : 클래스 '사용자 \ 응용 프로그램 \ 모델' 아무 상관없이에서 찾을 수 없으며, 모든 변형을 시도해 보았습니다. 무엇이 잘못 됐는지 전혀 모릅니다. 제 IDEA조차도이 수업을 올바르게 해결합니다.

내 네임 스페이스를 제거하면 모든 것이 작동합니다.

UPDATE : 당신이 다음 phalcon의 개발 도구로 프로젝트를 생성한다면

는 모델에 대한 네임 스페이스를 제공해야합니다 다른 것들 (모델, 컨트롤러)를 생성하기 시작하고 당신은 또한 필요합니다 작동하지 않습니다 이 같은 응용 프로그램/설정/loader.php를 업데이트 : 즉

<?php 

$loader = new \Phalcon\Loader(); 

/** 
* We're a registering a set of directories taken from the configuration file 
*/ 
$loader->registerDirs(
    [ 
     $config->application->controllersDir, 
     $config->application->modelsDir 
    ] 
)->register(); 

$loader->registerNamespaces(
    [ 
     'App\Controller' => $config->application->controllersDir, 
     'App\Model' => $config->application->modelsDir, 
    ] 
)->register(); 

네임 스페이스를 등록,이 명확하게 문서에 명시된 있지만이 프레임 워크를 솔기 많은 예 : "블랙홀"이없는 이유를 알고하지 않거나 나는이 프레임 워크의 기본 개념을 이해하지 못한다 (codeigniter와 Laravel b ackground).

+0

'App \ Model' 네임 스페이스를 오토로더에 추가 했습니까? 'composer dump-autoload'도 실행하는 것을 잊지 마십시오. –

+0

여기는 devtools로 생성 된 phalcon 기본 프로젝트입니다. – RomkaLTU

+0

그래, 팔콘은 상자에서 일하는 모든 것을 가지고 오지 않아. 부품을 선택하고 함께 붙일 필요가 있습니다. 프로젝트와 당신에 따라 좋거나 나쁠 수있는 것. 그러나 미묘한 속도는 PHP 프레임 워크에서 따로 따로 설정되며, 경험을 통해 훨씬 많은 트래픽을 위해 앱을 수행 할 때 마음이 편할 수 있습니다. – YOMorales

답변

1

부트 스트랩 파일이 시도 :

// registers namespaces 
$loader = new Loader(); 
$loader->registerNamespaces([ 
    'App\Controllers' => APP_PATH . '/controllers/', 
    'App\Models' => APP_PATH . '/models/' 
]); 
$loader->register(); 

, BTW APP_PATH 당신이 원하는 앱의 디렉토리 또는/필요에 일정 수 있습니다.

+0

필자는 phalcon dev 툴로 프로젝트를 생성했기 때문에 약간의 수정 작업이 필요합니다. (질문을 편집합니다.) 이것은 매우 이상하게 작동하지 않는 프레임 워크 인 imho입니다. – RomkaLTU

+0

그래, 팔콘은 모든 것을 상자 밖으로 나오지 않아. 부품을 선택하고 함께 붙일 필요가 있습니다. 프로젝트와 당신에 따라 좋거나 나쁠 수있는 것. 그러나 미묘한 속도는 PHP 프레임 워크에서 따로 따로 설정되며, 경험을 통해 훨씬 많은 트래픽을 위해 앱을 수행 할 때 마음이 편할 수 있습니다. – YOMorales