Связь доктрины PHP с пространствами имен - PullRequest
3 голосов
/ 26 ноября 2009

Я только начал использовать пространства имен PHP. У меня есть две модели классов в отдельных файлах

В обоих файлах сначала я объявляю пространство имен

пространство имен eu \ ed \ sixImport \ importViewer \ models;

первый класс:

Журнал класса extends \ Doctrine_Record

    $this->hasMany('eu\ed\sixImport\importViewer\models\DataSource as DataSource', array(
        'local' => 'id',
        'foreign' => 'logId'));//setup relationship in setUp method

второй класс:

Класс DataSource extends \ Doctrine_Record

    $this->hasOne('eu\ed\sixImport\importViewer\models\Log as Log', array(
        'local' => 'logId',
        'foreign' => 'id'));//setup relationship in setUp method

Все работает нормально, пока я не сделаю что-то вроде этого

    $query = \Doctrine_Query::create()
        ->select('log.*')
        ->from('eu\ed\sixImport\importViewer\models\Log log')
        ->leftJoin("log.DataSource")
        ->orderBy("log.id DESC");

    $requiredPage = (($startingRow - ($startingRow%$rowsRequired))/$rowsRequired) + 1;
    $pager = new \Doctrine_Pager($query, $requiredPage, $rowsRequired);
    $res = $pager->execute();        
    $this->logsPageCount = $pager->getNumResults();
    print_r($res[0]["DataSource"]->toArray());//it fails on access to relationship

чем учение бросить исключение Необработанное исключение «Doctrine_Exception» с сообщением «Не удалось найти класс eu \ ed» в C: \ wamp \ www \ importViewer \ resources \ doctrine \ Doctrine-1.1.5 \ lib \ Doctrine \ Table.php: 293 ...

Из Исключения, как вы можете видеть, он ищет класс 'eu \ ed'. Обратная косая черта [s] вырезает остальную часть имени класса, а затем класс явно не найден. Можете ли вы дать мне несколько советов, как решить эту проблему?

Спасибо

1 Ответ

0 голосов
/ 21 января 2011

Я не уверен, поддерживает ли Doctrine 1 пространства имен. Я действительно рекомендую использовать Doctrine 2 - он построен на основе зрелой архитектуры (с API из Java Hibernate) и не содержит столько магии, как Doctrine 1.

...