2017-01-06 8 views
0

사용자가 전달한 쉼표로 구분 된 목록을 기반으로 queryOr을 작성하려고합니다. 사용자가 반복하여 값을 추가합니다. 그래서 모든 값 같은 queryOr로 이동을 통해 내가 루프를 구축 할 수있는 방법이SugarQuery는 for 루프에서 queryOr을 빌드합니다.

$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(); 

있습니까 :

지금까지 나는이있는 단지를 구축있어?

+0

안녕하세요 Ben, 내 답변에 도움이 되었습니까? 이 방법으로 귀하의 질의가 해결 된 경우 답으로 표시하여 해당 사항에주의하십시오. – Reisclef

답변

0

당신은 자신의 변수로 현재 SugarQuery 객체를 설정 한 다음 다음과 같이 루프를 통해 공급할 수 :

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

이것은이 설립 queryOr과 같은 쿼리 객체에 함수를 포함 호출합니다. $currentQuery 변수가 동일한 SugarQuery 객체를 참조하기 때문에 나중에 $query->execute()을 실행하면 매개 변수가 포함됩니다.

+0

고마워요. –