有没有比这更简单的方法来构建学说中的查询。此时只有一个参数,但在某些情况下可能有用户名、标记名等。其中一些可能为空或空。我只需要简单的 StringBuilder 实现。我尝试使用 LEFT JOIN 进行 DQL 查询,但我不知道如何进行 DQL 查询?
public function getTagsByApiKey($apikey='', $limit = 20){
$whereArray = array();
$whereClauseArray = array();
if($apikey != ''){
array_push($whereClauseArray, ' f.apikey = :apikey ');
$whereArray[':apikey'] = $apikey;
}
$whereClause = '';
for ($i=0; $i < sizeof($whereClauseArray); $i++) {
if($i>0){
$whereClause .= ' AND ';
}
$whereClause .= $whereClauseArray[$i];
}
$q = Doctrine_Query::create()
->from('Tag t')
->leftJoin('t.Feedback f')
->where($whereClause, $whereArray)
->orderBy('t.count ASC')
->limit($limit);
return $q->execute();
}