Вопрос

Я новичок в учении. Я создал файл начальной загрузки, подобный следующему:

require_once(dirname(__FILE__)."/../conf/general.php");
require_once(dirname(__FILE__).'/Doctrine/lib/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));

$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL); 
$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true); #for accessor  overriding
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true); #in order to be able to use the XTable classes
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,    Doctrine_Core::MODEL_LOADING_CONSERVATIVE); #to conservatively load files
$manager->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_ALL); 

$dsn = "mysql:dbname=".DBNAME.";host=".DBHOST;
$dbh = new PDO( $dsn, DBUSERNAME, DBPASS );
$conn = Doctrine_Manager::connection( $dbh ); 
Doctrine_Core::loadModels('doc_models'); #In order to be able to work with models
Команда

php bootstrap.php
работает так же, как и ожидалось. Но у меня есть файл X.php в каталоге Y, и мне требуется файл bootstrap.php в X.php, но когда я запустил X.php в каталоге Y, как
 php X.php
, я получил следующее исключение:

Doctrine_Exception: You must pass a valid path to a directory containing Doctrine models in /path_to_directory_of_bootstrap_file/Doctrine/lib/Doctrine/Core.php on line 635

Теперь, как я могу решить эту проблему?

Кстати, когда я помещаю X.php и bootstrap.php в один каталог, он работает как положено. Я также пытался использовать абсолютные пути, но это не решило мою проблему. Я тестирую на Ubuntu 9.10 и установил доктрину от груши. Версия доктрины 1.2.0.

Это было полезно?

Решение

Пытались ли вы использовать абсолютные пути во время запроса? Realpath может помочь вам создать эти пути.

Другие советы

Я думаю, что эта ошибка возникает, когда доктрина ожидает существования некоторых модельных каталогов. Ошибка также возникает, если вы пытаетесь сгенерировать SQL из schema.yml ПЕРЕД созданием классов модели. Когда классовые модели создаются, они создают кучу каталогов, и я думаю, что вы их пропустили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top