1

我正在尝试在 Sugar 7.2 中编写一个将加入表的简单查询。这个 SQL 是我试图在 Sugar 框架中使用 SugarQuery() 创建的。

SELECT * FROM keyname_table_a LEFT JOIN keyname_table_b

所以我创建的是以下内容。当我使用核心模块时它工作得很好,但是如果我将它切换到我们创建的自定义模块,Sugar 会注销我并带我进入登录提示。

$query = new SugarQuery();
$query->from(BeanFactory::getBean('keyname_table_a'));
$query->join('keyname_table_b');
$results = $query->execute();

return print_r($results, true);

以上将我注销并在弹出消息中给我以下错误消息(类似于 app.alert.show 的工作方式),然后将我注销。

Error: Request failure, or, missing/invalid parameter. Please contact technical support

如果我将“from”和“join”表分别替换为“Accounts”和“cases”,那么查询就可以正常工作并获得预期的结果。但是,将其切换到我们拥有的自定义模块会导致上述错误,并且我们会立即注销。

我已经验证了这种关系存在,并且有数据将两者联系在一起。在 Sugar 中,这是一对多的关系。table_a是一,table_b而是多。

将两个自定义模块与SugarQuery()对象连接的正确方法是什么?

4

2 回答 2

2

您需要传递链接字段名称而不是 table_name 或关系名称

$query = new SugarQuery();
$query->from(BeanFactory::getBean('keyname_table_a'));
$query->join('link_name');
$results = $query->execute();
于 2015-02-27T07:41:35.410 回答
1

联接应该是关系名称。如果你想直接加入一个表,你可以使用 joinTable()。

在上面的 Accounts 示例中,cases 是关系名称,而不是表名称。

祝你有美好的一天!

于 2014-06-17T19:30:41.113 回答