Я пытаюсь заставить Doctrine генерировать SQL из набора моделей, которые я создал ранее с помощью схемы YAML.Используя приведенный ниже код из руководства, на выходе должен быть набор запросов.
<code><?php
// test.php
require_once('bootstrap.php');
try
{
$models = Doctrine_Core::generateSqlFromModels('models/generated');
echo '<pre>';
var_dump($models);
echo '
';} catch (Exception $ e) {echo $ e-> getMessage ();}
Однако результат этого кода:
NULL
, в то время как он должен вернуть строку с запросами SQL, как было сказано ранее.
Я также пробовал следующее:
<code><?php
// test.php
require_once('bootstrap.php');
try {
$result = Doctrine_Core::createTablesFromModels('models/generated');
echo '<pre>';
var_dump($result);
echo '
';} catch (Exception $ e) {echo $ e-> getMessage ();}
но это также возвращает:
NULL
Я не смог найти решение в руководстве, справочнике по API или в основных файлах Doctrine.Я надеюсь, что кто-то здесь знает.
Заранее спасибо.
Обновление: Не может быть из-за этой (старой?) Ошибки, потому чтоУ меня нет имени таблицы, начинающегося с A или B.
Обновление: Мой файл bootstrap.php выглядит следующим образом:
/**
* Bootstrap Doctrine.php, register autoloader specify
* configuration attributes and load models.
*/
require_once(dirname(__FILE__) . '/lib/vendor/doctrine/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));
$manager = Doctrine_Manager::getInstance();
$conn = Doctrine_Manager::connection('pgsql://user:pass@localhost/dbname', 'doctrine');
$manager->setAttribute(Doctrine_Core::ATTR_VALIDATE, Doctrine_Core::VALIDATE_ALL);
$manager->setAttribute(Doctrine_Core::ATTR_EXPORT, Doctrine_Core::EXPORT_ALL);
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
Обновление: Я изменил строку:
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
на:
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_AGGRESSIVE);
, но вывод
print_r(Doctrine_Core::filterInvalidModels(Doctrine_Core::loadModels('models/generated')))
по-прежнему пустой массив.