2017-01-15 9 views
0

Meine Funktion in UserRepository.php ist wie folgt:Wie Bedingung hinzufügen, wenn in Laravel Abfrage? (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; 
} 

ich eine Bedingung hinzufügen, um zu überprüfen, ob subaccountcode vorhanden sind oder nicht. Ich habe versucht, es zu mögen, aber es gibt Fehler:

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

Wie kann ich den Fehler lösen?

UPDATE

ich mit einem Drittanbieter-Paket. Ich bekomme von hier: https://github.com/andersao/l5-repository

Antwort

0

Es hängt davon ab, was findWhere() tut. Wenn es etwas ist, wie find() und es gibt ein Objekt, aber nicht eine Instanz von Query Builder, dann tut dies:

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

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

return $query; 
+0

'$ Subaccountcode' existiert oder nicht,' -> Findwhere ([ 'Jahr' => $ year ]) 'muss bleiben ausgeführt werden –

+0

Es gibt Fehler:' 1/1 BadMethodCallException in Macroable.php Zeile 74: Methode findWhere nicht vorhanden. ' –

+0

@mosestoh diese Methode existiert nicht in Laravel, ich dachte, es ist die Methode wurde von Ihnen definiert. Wenn Sie es definiert haben, zeigen Sie bitte, wie Sie das gemacht haben. Wenn nicht, benutze 'where()' anstelle von 'findWhere()' und 'return $ query-> get();' am Ende. –