我在SugarCRM论坛上问了这个问题,但也找不到答案。我正在尝试填充SugarCRM Community 6.5中的下拉列表。我使用的是PHP5,MySQL和Apache。我在下拉列表编辑器中创建了一个名为“oz_accounts”的自定义下拉列表,在我自己构建的自定义模块机器中创建了一个新字段,并根据下拉菜单将该字段与编辑,快速创建,详细信息和列表视图相关联。这是我使用的代码,结果是一个空白的下拉菜单:
<?php
require_once('include/entryPoint.php');
$db = & DBManagerFactory::getInstance();
$myQuery = "SELECT name FROM accounts";
$Result = $db->query($myQuery);
$new_array = array();
while($row = $db->fetchByAssoc($Result)) {
$new_array[$row['key']] = $row['value'];
}
$GLOBALS['app_list_strings']['oz_accounts'] = $new_array;
有人可以告诉我我做错了什么吗?我在phpmyadmin中测试了查询,它检索了我正在寻找的结果,所以我假设我必须在PHP代码的某个地方犯错,可能连接到数据库。
答案 0 :(得分:4)
我在不久前发布了有关如何执行此操作的说明:http://www.eggsurplus.com/content/populate-a-dropdown-from-the-database/
您需要做的是创建一个自定义util函数,然后告诉vardef该字段调用自定义util函数。
//custom/Extension/application/Ext/Utils/getAccounts.php
function getAccounts(){
static $accounts = null;
if(!$accounts){
global $db;
$query = "SELECT id, name FROM accounts";
$result = $db->query($query, false);
$accounts = array();
$accounts[''] = '';
while (($row = $db->fetchByAssoc($result)) != null) {
$accounts[$row['id']] = $row['name'];
}
}
return $accounts;
}
文件名无关紧要。确保包含打开PHP标记。运行修复/重建,以便构建自定义/ application / Ext / Utils / custom_utils.ext.php。
然后在该字段的vardef定义中将函数设置为getAccounts:
'function' => 'getAccounts',
vardef更改后将需要修复/重建。
答案 1 :(得分:0)
问题在流程定义中,列表未显示