gpt4 book ai didi

php - Propel - 检索所有表

转载 作者:行者123 更新时间:2023-12-02 20:02:55 25 4
gpt4 key购买 nike

我想使用 propel 获得所有模式表的输出。当引用特定的TableMap

$users = UsersTableMap::getTableMap();
$map = $users->getDatabaseMap();
$tables = $map->getTables(); //yields an object, holds only Users table

有没有办法使用特定的表(例如用户),但有更通用的方法?有一点过时了question here面临同样的问题。

我应该进行自定义查询还是解析 schema.xml 来检索所有表?

更新

下面给出的一些解决方案作为答案会产生空数组

$map = Propel::getServiceContainer()->getDatabaseMap(); //w & w/o string argument
$tables = $map->getTables(); //an empty array

最佳答案

当前版本 2 中无法通过一次调用检索所有表映射。原因:我们需要加载所有表映射,这非常慢,而且我们没有包含构建时可用的所有可用表映射的总“映射”/“数组”列表。然而在 Propel3 中,这是可能的。

您应该遵循的唯一解决方案是解析 schema.xml:How do I check if table names are valid in Propel?

您还可以做的是使用 Propel 的反向类来反转真实数据库。然而,这非常慢,因为它会一直读取整个数据库结构。请参阅https://github.com/propelorm/Propel2/issues/261#issuecomment-40659647

关于php - Propel - 检索所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758283/

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