2016-07-05 7 views
1

私は私のLaravelコントローラでこのメソッドを持っている条件:ドクトリン -

public function getUserOrders($userId) :array{  
    $results = $this->_em->createQueryBuilder() 
     ->select('Orders.orderItemCount') 
     ->from($this->entityClass, 'Orders') 
     ->Where("Orders.orderItemCount > '0'") 
     ->andWhere("Orders.orderTotalPrice > '0'") 
     ->andWhere("Orders.usersUserId = '{$userId}'") 
     ->getQuery()->getArrayResult(); 

    return $results; 
} 

私は$のuserIdはオプションとなります。この方法を変更したいので、最後の条件は、このような状況で必要とされていません。

public function getUserOrders($userId = NULL) :array{  
    $results = $this->_em->createQueryBuilder() 
     ->select('Orders.orderItemCount') 
     ->from($this->entityClass, 'Orders') 
     ->Where("Orders.orderItemCount > '0'") 
     ->andWhere("Orders.orderTotalPrice > '0'") 
     if (!is_null($userId)) 
      ->andWhere("Orders.usersUserId = '{$userId}'") 
     ->getQuery()->getArrayResult(); 

    return $results; 
} 

私はこれを達成するための最良の方法を理解しようとしています。なにか提案を?

答えて

0

この

public function getUserOrders($userId = NULL) :array{  
$results = $this->_em->createQueryBuilder() 
    ->select('Orders.orderItemCount') 
    ->from($this->entityClass, 'Orders') 
    ->Where("Orders.orderItemCount > '0'") 
    ->andWhere("Orders.orderTotalPrice > '0'"); 
    if (!is_null($userId)){ 
     $results->andWhere("Orders.usersUserId" = $userId); 
    } 
    $results->getQuery()->getArrayResult(); 

return $results; 
} 
+0

解析エラー試しください: ' - >' 構文エラー、予期しないエラーを与える行(T_OBJECT_OPERATOR) – AFN

+0

を..?更新されたコードを試してください –

+0

あなたのコードを見てください。 ' - > andWhere(" Orders.orderTotalPrice> '0' ");'にセミコロンがあります。セミコロンを削除しても、セミコロンは機能しません。ここでもっとやるべきことがあります。 – Ohgodwhy