问题标签 [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 投票
1 回答
158 浏览

php - 使用 Propel ORM 的多租户应用程序

我目前是一个多租户应用程序的开发人员,其中有一个“主”数据库,它保存客户的数据,也用作模板,也就是说,它为每个新客户复制一个不同的名称,以保存它的数据。

在 PHP 中使用Propel ORM时,模型配置在一个 XML 文件中完成,结构如下:

是否可以使用相同的 XML 文件来为所有客户数据库的所有连接建模,或者我是否需要为每个文件创建一个单独的文件,除了数据库名称之外完全相同?

由于我的问题已被标记为这个问题的潜在重复我之前发现过,我想解释一下为什么它不同:

  • 在这种情况下,数据库的数量会随着时间而改变,而在那个问题中它是固定的
  • 在这种情况下,所有数据库和每个数据库中的所有表都将具有完全相同的结构
  • 不想为每个客户提供不同的类,而是一组模型类,它将查询最后选择的数据库
0 投票
0 回答
145 浏览

propel - 推动反向生成表但schema.xml中没有列信息

我正在使用带有 Postgres 数据库的 Propel 2。当我运行以下命令时,它似乎可以工作,但是在生成的 schema.xml 文件中,我没有得到任何列信息:

生成的 schema.xml 如下所示:

我完全不知道为什么会这样。任何帮助表示赞赏。

0 投票
1 回答
123 浏览

php - macOS Sierra 上的 PHP Propel 无法创建有效的符号链接

推进手册说:

为了让脚本更容易执行,您还可以将推进生成器的 bin/ 目录添加到您的 PATH 中,或者创建一个符号链接。例如:

如果这样做,则会创建符号链接,但如果我运行 propel,则会收到以下错误:

ln -al 的结果

我该如何解决这个问题?

注意:调用 vendor/bin/propel 工作正常

0 投票
1 回答
392 浏览

php - 通过验证推进枚举

我有一个用户表,其中包含一个性别枚举字段,选项为男/女。如果我创建一个用户,如果我尝试将性别设置为例如“跨性别”,则会引发异常。

是否可以允许将跨性别设置为“跨性别”并且仅在调用 validate() 函数时才会出现验证错误?所以它与其他字段一起验证?

架构.xml:

PHP代码:

0 投票
1 回答
165 浏览

memory - 推动orm - 迁移

我有这个问题,我找不到很好的信息。对于我发现的那些信息,没有一个有用。就这样,我用推进器开始了一个项目,我创建了一个包含基本表的第一个数据库,运行“php propel init”,一切正常。然后我需要另一个表,我在它的 schema.xml 中创建,但是当我运行任何这些迁移工具时,我得到这个错误:

这非常令人沮丧,我觉得互联网缺乏这种推进信息。

0 投票
2 回答
301 浏览

php - PHP/Propel 删除记录 1:n

我有两个表:步骤和链接加入 1:n。我的目标是通过步骤对象维护链接。我从数据库中检索所有步骤并使用链接表填充关系。我保留包含指向 JSON 的链接集合的 step 对象,并使用 REST 将其返回到前端。

这意味着,如果一个步骤与前端的另一个步骤链接或取消链接,我会将整个步骤发送回后端,包括一组链接。在后端,我使用以下代码:

我基本上是从一个步骤中删除每个链接,并根据我重新创建链接的请求对象。这让我省去了比较删除和添加哪些链接的工作。插入工作就像一个魅力 Propel 会自动创建新链接。事情是它不会像插入那样删除。我检查了被持久化的对象($p),我看到链接被删除,但在 MySQL 日志中,Propel 绝对没有执行任何操作。看起来链接集合中缺少的成员不会触发脏标志或类似的东西。

也许我的方法是错误的,我希望有人能提供一些建议。

谢谢

0 投票
1 回答
1514 浏览

php - /usr/bin/env: “php\r”: 没有这样的文件或目录


我在 Propel ORM 配置过程中遇到问题。
我按照这个配置文件在我的 Vagrant 上使用 PHP 7.1 准备了环境:

目前我想安装 Propel ORM。我将 Propel 添加到作曲家,安装,现在我输入(通过 Vagrant 中的 SSH) /var/www/application/Vendors/bin/propel init但不幸的是我收到错误:

我能做些什么来解决它?

编辑: 我运行的文件(未编辑,通过 Composer 安装):

0 投票
1 回答
133 浏览

fosuserbundle - Symfony 3.2 的 Fos 用户包不再支持推进数据存储?

我一直在运行Symfony 2.3并且经常使用FOS User Bundle ,所以我在一个带有Symfony 3.2.8的新项目中重用了我的一些config.yml配置。我刚刚通过 composer 恢复了 FOS 用户包,我想知道为什么该供应商包缺少旧版本中使用的用户类。另外,我不能在 config.yml 中将 'propel' 指定为 'user_class '。我收到消息:FOS\UserBundle\Propel\UserManager

'不支持驱动程序“推进”。请选择 ["orm","mongodb","couchdb","custom"] 之一。

应该做什么?将 Propel 用户管理器实现为自定义用户类?

非常感谢您的信息!问候, 史蒂芬

0 投票
0 回答
74 浏览

propel2 - Propel ORM:查询以大写开头字符搜索表名

我正在使用 Propel ORM

这是我的 schema.xml 中的生成器。当我进行查询时,它返回为

42S02 - SQLSTATE [42S02]:未找到基表或视图:1146 表 'taw.Tawcompanyresearch' 不存在

请注意,表名是小写字母,但搜索结果将表的第一个字符返回为大写。

这个值在哪里可以改变?请给我一些关于这个错误的见解。谢谢你

0 投票
1 回答
504 浏览

php - 仅选择 Propel 中的计算列

我正在尝试使用仅返回计算列的 Propel 执行选择,但我总是选择其他列。

例如:

结果查询:

我已经能够减少选择的字段数量,仅包括一个字段。例如,此查询仅返回两个字段:

结果查询:

¿ 在 Propel 中有没有办法只选择计算列?

我已经看到ModelCriteria->doSelect()基于受保护的ModelCriteria->isSelfSelected属性添加了列,该属性已设置ModelCriteria->select()但未设置,addAsColumn()因为它来自 Criteria,并且在 ModelCriteria 中没有被覆盖。

不知道这是一个错误还是我做的不好。