创建能够搜索多个模块字段的高级搜索字段

时间:2017-08-10 12:51:32

标签: sugarcrm suitecrm

我目前遇到的问题是尝试构建自定义搜索字段(本身绑定到模块上未使用的字段)以搜索两个电话号码字段。涉及搜索字段修改的文档非常糟糕,但我在模块的SearchFields.php中有以下内容

  'phone' => 
  array (
    'query_type' => 'default',
    'operator' => '=',
    'db_field' => 
    array (
      0 => 'home_phone_c',
      1 => 'work_phone_c',
    ),
  ),

字段本身没有返回任何结果,所以我错过了一些会阻止它工作的东西吗?

2 个答案:

答案 0 :(得分:0)

为什么不使用“子查询”运算符呢?请参阅Account模块的元数据文件夹中的SearchFields.php。您将看到如下条目:

'email' => 
  array (
    'query_type' => 'default',
    'operator' => 'subquery',
    'subquery' => 'SELECT eabr.bean_id FROM email_addr_bean_rel eabr JOIN email_addresses ea ON (ea.id = eabr.email_address_id) WHERE eabr.deleted=0 AND ea.email_address LIKE',
    'db_field' => 
    array (
      0 => 'id',
    ),
    'vname' => 'LBL_ANY_EMAIL',
  ),

这将帮助您理解这样做的糖逻辑。

答案 1 :(得分:0)

您需要指定正确的表。尝试下面的代码(或使用要搜索的表):

 'phone' => 
  array (
    'query_type' => 'default',
    'operator' => '=',
    'db_field' => 
    array (
      0 => 'accounts_cstm.home_phone_c',
      1 => 'accounts_cstm.work_phone_c',
    ),
  ),