Sugarcrm SugarQuery在for循环中构建查询器

Sugarcrm SugarQuery在for循环中构建查询器,sugarcrm,sugarbean,Sugarcrm,Sugarbean,我试图建立一个基于逗号分隔列表的查询器,该列表由用户传入,我将循环并添加值 到目前为止,我得到了这个,它只是构建了它: $query = new SugarQuery(); $query->from(BeanFactory::getBean('rdwrk_Request')); $skills = $query->join('rdwrk_request_skills_rdwrk_request', array('alias' => 'skills'))->joinName

我试图建立一个基于逗号分隔列表的查询器,该列表由用户传入,我将循环并添加值

到目前为止,我得到了这个,它只是构建了它:

$query = new SugarQuery();
$query->from(BeanFactory::getBean('rdwrk_Request'));
$skills = $query->join('rdwrk_request_skills_rdwrk_request', array('alias' => 'skills'))->joinName();
$query->select(array(array('name', 'requestName'), array('skills.name', 'skillName')));
if($args["requestName"])
{
    $requestName = $args["requestName"];
    if(strpos($requestName, ',') !== false)
    {
        $requestNames = explode(",", $requestName);
        foreach($requestNames as $name)
        {
            $query->where()->queryOr()->contains('name', $name);
        }
    }
    else
    {
        $query->where()->contains('name', $requestName);
    }
}
if($args["skillName"])
{
    $query->where()->contains('skills.name', args["skillName"]);                
}
$results = $query->execute();

有没有办法构建它,使我循环的所有值都进入同一个查询器?

您可以将当前的SugarQuery对象设置为它自己的变量,然后按如下方式通过循环输入它:

$currentQuery = $query->where()->queryOr();
foreach($requestNames as $name)
{
    $currentQuery->contains('name', $name);
}

这将在已建立查询器的同一查询对象上调用contains函数。由于
$currentQuery
变量引用了相同的SugarQuery对象,因此稍后运行
$query->execute()
将包含参数。

嗨,Ben,我的答案有帮助吗?如果这解决了您的问题,请将其标记为答案。