2012-02-22 12 views
1

Doctrine cookbookの指示に従って、CodeIgniter 2.1とDoctrine 2.2でプロジェクトをセットアップしました。 EntityManagerが動作しますが、私は、エンティティモデルをロードしようとすると、それ は私にこれは私のhome.phpファイルですクラスモデルがDoctrine 2.2 + CodeIgniter 2.1に見つかりません

Fatal error: Class 'Users' not found in /Volumes/Data/Projects/myproject/application/controllers/home.php on line 10 

エラー与える:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

//require_once(APPPATH.'models/Users.php'); 

class Home extends CI_Controller { 
    public function index() 
    { 
    $em = $this->doctrine->em; 
    $users = new Users;  
    //$user = $em->find("Users", 1); 
    $em->flush(); // dummy 
    $this->load->view('welcome_message'); 
    } 
} 

をする場合、私のコメントを解除行3:その後、require_once(APPPATH.'models/Users.php');、 それは完全に動作します。

モデルを自動ロードするにはどうすればよいですか?

ライブラリ/ Doctrine.phpのブートストラップによってオートロード機構が処理されるのですか?

$entitiesClassLoader = new ClassLoader('models', rtrim(APPPATH, "/")); 
    $entitiesClassLoader->register(); 

この問題について私に洞察を与えてください。

答えて

0

私はCIで働いたことがないとない含めると、Doctrineはそれがそれらをロードモデルやをロードする必要がある場合Doctrineはそれほど知らないが、あなたはそれがyourselftんしようとする必要がありますが、この方法:

コントローラ内: $ this-> load-> model( 'Users');

またはapplication/config/autoload.phpのAutoloadとして、モデルをArrayにロードします。

1

私はあなたのUsers.phpファイルの中に名前空間の行があると思いますか?

もしそうなら、PHPの名前空間システムがエンティティを探す場所を知るように、コントローラコードに "use"ステートメントを追加する必要があります。

entityClassLoaderが実際に呼び出されており、APPPATHに期待値があることを確認してください。

関連する問題