我曾经在这里问过一个关于为SugarCRM设置数据库填充下拉列表的问题。我收到了一个非常好的答案,经过更多的php研究和一个dev实例运行后,我决定试一试。我可以找到我遵循的说明here。运行修复和重建后,我希望在工作室中的模块下的“字段”列表中看到自定义字段,但无法找到它。该模块名为Makers(a1_makers为数据库表)。为了好的订单,保存文件后修复/重建时没有错误。
按照说明,我首先创建了一个带有自定义函数的php文件来查询数据库(自定义/扩展/应用/外部/的Utils / getMakers.php):
<?php
function getMakers() {
static $makers = null;
if (!$makers){
global $db;
$query = "SELECT id, name FROM a1_maker";
$result = $db->query($query, false);
$accounts = array();
$accounts[''] = '';
while (($row = $db->fetchByAssoc($result)) !=null) {
$accounts[$row['id']] = $row['name'];
}
}
return $makers;
}
?>
然后,我在Vardefs中设置'function'字段指向函数(custom / Extension / modules / Maker / Ext / Vardefs / makers_template.php):
<?php
$dictionary['Maker']['fields']['list_of_makers'] = array (
'name' => 'list_of_makers',
'vname' => 'LBL_MKRLST'
'function' => 'getMakers',
'type' => 'enum',
'len' => '100',
'comment' => 'List of makers populated from the database',
);
?>
不幸的是,没有错误,修复/重建运行正常。我进入工作室时,我无法看到自定义字段。谁能帮助指出我可能做错了什么?
答案 0 :(得分:2)
我建议在cache/modules/Maker/Makervardefs.php
文件中检查是否存在新创建的字段'list_of_makers'。如果该文件中存在新字段定义,请尝试将'studio' => 'visible'
添加到custom/Extension/modules/Maker/Ext/Vardefs/makers_template.php
以获得以下内容:
<?php
$dictionary['Maker']['fields']['list_of_makers'] = array (
'name' => 'list_of_makers',
'vname' => 'LBL_MKRLST'
'function' => 'getMakers',
'type' => 'enum',
'studio' => 'visible'
'len' => '100',
'comment' => 'List of makers populated from the database',
);
尝试手动编辑自定义/ modules / Maker / metadata / editviewdefs.php并在适当的位置手动插入字段定义,如果上述所有内容都不起作用。
答案 1 :(得分:0)
$dictionary['Maker']['fields']['list_of_makers'] = array (
'name' => 'list_of_makers',
'vname' => 'LBL_MKRLST'
'function' => 'getMakers',
'type' => 'enum',
'studio' => 'visible'
'len' => '100',
'comment' => 'List of makers populated from the database',
'studio' => array(
'listview' => true,
'detailview' => true,
'editview' => true
),
);