1

前段时间我在这里问了一个关于为 SugarCRM 设置数据库填充下拉列表的问题。我收到了一个非常好的答案,在更多的 php 研究和一个开发实例运行之后,我决定试一试。我遵循的说明可以在这里找到。在我运行修复和重建后,我希望在工作室模块下的字段列表中看到自定义字段,但无法找到它。该模块被命名为 Makers(a1_makers 作为数据库表)。为了良好的订单,我在保存文件后修复/重建时没有错误。

根据说明,我首先创建了一个带有自定义函数的 php 文件来查询数据库(custom/Extension/application/Ext/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',
    );
   ?>

不幸的是,没有错误,修复/重建运行良好。当我进入工作室时,我只是无法看到自定义字段。谁能帮助指出我可能做错了什么?

4

2 回答 2

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',
    );

尝试手动编辑您的 custom/modules/Maker/metadata/editviewdefs.php 并手动将字段定义插入适当的位置,如果以上所有内容都不起作用。

于 2013-10-18T08:00:58.283 回答
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
        ),
);
于 2019-05-08T04:17:30.383 回答