Symfony中的Doctrine查询中的指令?

Tat*_*ler 1 php sql doctrine symfony1 symfony-1.4

我怎么能做点什么:

  public function executeSearch(sfWebRequest $request)
  {
    $test = 1;

    $this->shows = Doctrine_Core::getTable('Show')
      ->createQuery('a')
      ->where('a.name = ?', 'Tom')
   if ($test == 1) {   ->andWhere('a.last_name = ?', 'Jerry') }
      ->execute();
  }
Run Code Online (Sandbox Code Playgroud)

这不起作用.如何在Doctrine查询中指示?

要么:

  public function executeSearch(sfWebRequest $request)
  { 
    if(isset($test)){
    $test = 'Jerry';
    }
  //now if isset $test then andWhere search only with Jerry, if not isset andWhere search ALL

    $this->shows = Doctrine_Core::getTable('Show')
      ->createQuery('a')
      ->where('a.name = ?', 'Tom')
      ->andWhere('a.last_name = ?', $test) }
      ->execute();
  }
Run Code Online (Sandbox Code Playgroud)

Dzi*_*mid 5

$q = Doctrine_Core::getTable('Show')
  ->createQuery('a')
  ->where('a.name = ?', 'Tom');

if ($test == 1) 
{   
  $q->andWhere('a.last_name = ?', 'Jerry');
}

$this->shows = $q->execute();
Run Code Online (Sandbox Code Playgroud)