2017-01-15 3 views
0

Моя функция в UserRepository.php, как это:Как добавить условие, если в запросе laravel? (Laravel 5,3)

public function displayList($year, $subaccountcode = NULL) 
{ 
    $query = Self::orderBy('programcode') 
       ->orderBy('accountcode') 
       ->findWhere(['year' => $year]) 
      if(isset($subaccountcode)) 
       ->findWhere(['subaccountcode' => $subaccountcode]); 
      else 
       ; 
    return $query; 
} 

добавить условие, чтобы проверить, существуют ли subaccountcode или нет. Я попытался это сделать, но есть ошибка:

2/2 ReflectionException in Container.php line 809: Class App\Repositories\UserRepository does not exist 

Как я могу решить эту ошибку?

UPDATE

Я с помощью пакета третьей стороной. Я получаю отсюда: https://github.com/andersao/l5-repository

ответ

0

Это зависит от того, что findWhere() делает. Если это что-то вроде find() и возвращает объект, но не экземпляр построитель запросов, то сделать это:

$query = Self::orderBy('programcode')->orderBy('accountcode')->findWhere(['year' => $year]); 

if (isset($subaccountcode)) { 
    $query->findWhere(['subaccountcode' => $subaccountcode]); 
} 

return $query; 
+0

'$ Subaccountcode' существует или нет,' -> findWhere ([ «год» => $ год ]) 'должен оставаться включенным –

+0

Существует ошибка:' 1/1 BadMethodCallException в строке Macroable.php 74: Метод findWhere не существует. ' –

+0

@mosestoh этот метод не существует в Laravel, я думал, что этот метод определен вами. Если вы это определили, пожалуйста, покажите, как вы это сделали. Если нет, используйте 'where()' вместо 'findWhere()' и 'return $ query-> get();' в конце. –

Смежные вопросы