问题标签 [propel2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
793 浏览

php - Propel ORM:更改 diff 和 migrate 的连接设置

所以我目前正在使用 Propel ORM (v2.00-dev) 开发一个小项目,我想我会第一次尝试使用 Vagrant。

我已经设置了 vagrant 服务器以允许外部 MySQL 连接,并构建了以下配置文件,因此每次我想从命令行运行 propel 时都不必 ssh 进入服务器

与类似的配对schema.xml

现在,到目前为止,这一直很好。该应用程序使用 运行project-local,当我从命令行运行 propel 时,它会project-remote按预期切换到。

但是,当我尝试运行propel diff时,出现以下错误:

这表明在运行差异时,Propel 正在尝试使用runtime连接设置而不是generator那些。有什么办法可以改变这个吗?我检查了配置文档,但看不到任何有关设置连接的信息。

我还注意到该diff命令有一个--connection参数,但我找不到任何关于它的信息,也无法弄清楚如何使用它。我试过了:

两者都导致以下错误

那么,是否有人对如何为推进差异指定连接(并可能迁移)有任何想法?

0 投票
2 回答
2221 浏览

php - 不使用自动增量 ID 时,使用 Propel ORM 获取插入行的 ID

使用 Propel,我可以使用

$user->getId()将包含插入对象的 ID。但这只有在我使用自动递增的 ID 值时才有效。

当 ID 由函数生成时,有什么方法可以让它工作吗?

我可以附加RETURNING id到插入查询的末尾以返回 ID,但我不确定是否可以将此数据返回到 Propel User 对象中。

0 投票
2 回答
1351 浏览

php - Propel2:将 ObjectCollection 转换为 JSON() 时的小写/驼峰式键

我们如何将 toJson() 返回对象的键转换为小写或驼峰式?考虑以下示例:

询问:

结果:

默认情况下,它似乎是 PascalCase。如何获取 json 结果的小写属性?

我所指的函数可以在这里找到并应用于 ObjectCollection。

更新: 我想避免使用数组:array_change_key_case() 在处理复杂对象时不适用于多维数组。

我知道这可以通过一些修改来实现,但我想知道是否有更好的方法,最好不要出于性能目的先转换为数组。

0 投票
1 回答
873 浏览

php - 将 PDO::MYSQL_ATTR_SSL_CA 与 Propel ORM 一起使用

我正在尝试使用 Propelreverse命令对数据库进行逆向工程。我尝试连接的数据库需要 SSL 证书,这就是我在应用程序中连接它的方式:

我的推进配置文件:

我收到以下错误:

我读了这篇文章:Secure Propel connection, remote MySQL , the first answer link to an old version of Propel,我也尝试了替代答案,用PDO::MYSQL_ATTR_SSL_CA它的整数值代替。没有任何效果,以前有人遇到过这个问题吗?我错过了什么?

0 投票
1 回答
26 浏览

php - 无法在分页结果中将数组字段重命名为 FIELDNAME 类型

我只需要将所有结果字段从 PHPNAME 类型重命名为 FIELDNAME。我正在运行这样的查询:

在哪里$formatter

但是每个数组仍然有 PHPNAME 字段名。当我不对结果进行分页而只使用时find(),我可以简单地toArray在结果上使用,一切都很好,但我不知道如何对分页结果做同样的事情

0 投票
2 回答
574 浏览

php - 在 Propel 中生成 JSON 时使用列名

在 ObjectCollection 上使用toJSON()时,属性的名称始终基于 PHP 名称。例如:

对于列type_name,JSON 属性变为TypeName等。

有没有办法让 Propel 使用字段/列的名称来代替?

0 投票
1 回答
369 浏览

propel - 推进,只选择一列

我正在尝试在运行聚合函数(SUM)的推进中运行查询。

我的代码

问题

理论上它应该返回每组项目的总和,但问题是 propel 尝试获取所有列,并且还将一堆其他列附加到 group by 子句。这会导致意外的分类,因此总和不正确。

有没有办法让 propel 只获取我正在运行聚合函数的列,以便 group by 语句也能正常工作?

0 投票
1 回答
670 浏览

php - 当 MySQL 服务器消失时 Propel2 重新连接

我有一个长期运行的工作,使用Propel2. mysql server has gone away但是,有时它会因臭名昭著的错误而崩溃。我想通过重新连接到服务器来从这个错误中恢复,也许在等待几秒钟之后。有谁知道如何在连接丢失后强制 Propel 重新连接?我没有从PropelPDO API 中找到任何线索。

0 投票
1 回答
387 浏览

mysql - 在表名或列名中使用保留关键字时收到 Propel 语法错误

有没有办法让 Propel 在添加/更新行时自动转义作为保留字的列名?

现在我有一个名为“订单”的列,当我尝试使用更新时

我收到语法错误“PHP 致命错误:未捕获的异常 'PDOException' 并带有消息 'SQLSTATE[42601]:语法错误:7 错误:在“订单”或附近出现语法错误\nLINE 1:更新条款 SET order=$1 WHERE 条款。 id=$2\n ^'"

0 投票
2 回答
3481 浏览

php - 如何在推进中选择表连接上的特定列?

我需要使用 propel orm 2.0.0 从两个表中选择特定的列集。等效查询如下

我在两个表上的必要列具有相同名称但需要使用不同列连接的地方苦苦挣扎。

帮助我使用推进 php 代码以及适当的参考站点。官方网站上的文档不是一个好的教程。