2016-09-07 3 views
0

Ich schreibe Code wie dieseKann ich die Fallmethode an Laravel5 anhängen?

$category = Input::get('category'); // ?category=1 

    if(!empty($category)){ // ?category=1, category=2 
     $lists = \App\Test::where('created_at', '<=', 'now()') 
           ->where('category', $category) // append this. 
           ->orderBy('id','desc') 
           ->get(); 
    } 
    else { // ?category=, category=0 
     $lists = \App\Test::where('created_at', '<=', 'now()') 
           ->orderBy('id','desc') 
           ->get(); 
    } 

, die so arbeiten, aber ich denke, schmutzig-Code. Ich möchte nicht wieder den gleichen Code schreiben, wenn ich kann.

So möchte ich, wie dies zu tun (Arbeiten nicht)

$category = Input::get('category'); // ?category=1 

    $lists = \App\Test::where('created_at', '<=', 'now()'); 

    if(!empty($category)){ // ?category=1, category=2 
     $lists .= $lists::where('category', $category); 
    } 

    $lists .= $lists::orderBy('id','desc')->get(); 

Wer weiß, Art-Lösungen?

Antwort

1

Mit diesem Code

$lists = \App\Test::where('created_at', '<=', 'now()'); 

    if(!empty($category)){ // ?category=1, category=2 
     $lists = $lists->where('category', $category); 
    } 

    $lists->orderBy('id','desc')->get(); 
+0

ARBEIT !! GUT GEMACHT!! Vielen Dank, D – qwe001

+0

Sie sind willkommen –

+0

@ qwe001 Markieren Sie es als die Antwort, um die Person, die geholfen hat, Ihr Problem zu lösen und auch Besuchern mit ähnlichen Problemen zu helfen ermutigen ... – Poiz

0

Sie tun können, es mag:

$lists = \App\Test::where('created_at', '<=', 'now()'); 

und dann, wenn Sie wollen etwas anhängen, fügen Sie es wie folgt aus:

if(!empty($category)){ // ?category=1, category=2 
    $lists = $lists::where('category','=', $category); 
} 

Sie don 't müssen . verwenden

Verwandte Themen