gpt4 book ai didi

php - Doctrine SQL/表生成失败

转载 作者:行者123 更新时间:2023-11-29 14:02:25 24 4
gpt4 key购买 nike

我正在尝试让 Doctrine 从我之前使用 YAML 模式创建的一组模型生成 SQL。使用手册中的以下代码,输出应该是一组查询。

<?php
// test.php
require_once('bootstrap.php');

try
{
$models = Doctrine_Core::generateSqlFromModels('models/generated');

echo '<pre>';
var_dump($models);
echo '</pre>';
}
catch(Exception $e)
{
echo $e->getMessage();
}

然而,这段代码的结果是:

NULL

如前所述,它应该返回带有 SQL 查询的字符串。

我还尝试了以下方法:

<?php
// test.php
require_once('bootstrap.php');

try {
$result = Doctrine_Core::createTablesFromModels('models/generated');

echo '<pre>';
var_dump($result);
echo '</pre>';
}
catch(Exception $e)
{
echo $e->getMessage();
}

但这也会返回:

NULL

我无法在手册、API 引用或 Doctrine 核心文件中找到解决方案。我希望这里有人知道。

提前致谢。

更新:不可能是因为this (旧?)错误,因为我没有以 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'))) 

仍然是一个空数组。

最佳答案

问题是生成的模型名称是这样的:

<?php
abstract class BaseClass extends Doctrine_Record
{

}

删除 abstract 关键字就可以了。所有其他 Doctrine 模型都没有使用 abstract 关键字,因此删除它不会有任何坏处。

关于php - Doctrine SQL/表生成失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3746798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com