我目前遇到的问题是尝试构建自定义搜索字段(本身绑定到模块上未使用的字段)以搜索两个电话号码字段。涉及搜索字段修改的文档非常糟糕,但我在模块的SearchFields.php中有以下内容
'phone' =>
array (
'query_type' => 'default',
'operator' => '=',
'db_field' =>
array (
0 => 'home_phone_c',
1 => 'work_phone_c',
),
),
字段本身没有返回任何结果,所以我错过了一些会阻止它工作的东西吗?
答案 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',
),
),