2016-03-24 2 views
1

Ich möchte Drop-Down-Liste filtern.Laravel 5.2 Filter mit Dropdown-Liste

Ich habe eine Webseite, die einen Beitrag mit Titel und Kategorien angezeigt.

Die Seite enthält eine Dropdown-Liste in nav.blade.php. Ich generiere dynamisch Drop-Down aus der Tabelle Kategorien. Aber wenn ich einen Drop-Down-Eintrag auswähle (zum Beispiel einen Kategorienamen), möchte ich auf der Seite nur die Beiträge dieser Kategorie anzeigen. Außerdem habe ich das Kategorie- und Beitragsmodell erstellt und die Beziehungen festgelegt. Ich kann alle Beiträge auf meiner Hauptseite sehen, aber keinen Inhalt mit Dropdown-Liste filtern.

Was mache ich falsch? und wie kann ich dieses Problem lösen?

Mein nav.blade:

<li class="dropdown"> 
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" 
     aria-haspopup="true" aria-expanded="false">Dropdown 
     <span class="caret"></span></a> 
    <ul class="dropdown-menu"> 
     <li>@foreach($categories as $category) 
       <a href="{{URL::route('home',$category->id)}}"> 
        <option value="{{$category->id}}">{{ $category->name }}</option> 
       </a> 
      @endforeach 
     </li> 
    </ul> 
</li> 
+0

Ich habe Ihre Frage korrigiert, bitte lesen Sie und bestätigen Sie, weil Ihre vorherige Formulierung nicht verständlich war? –

+0

ok vielen Dank – minchevz

+0

kein Problem, sollten Sie mir gesagt haben, dass die folgende Lösung funktionierte, da ich einige Zeit für Sie zu machen :) viel Glück –

Antwort

1

Dies würde Ihnen den Einstieg:

Sie wie eine Route haben Angenommen:

Route::get('/{category_id}', ['as'=>'home', 'uses'=>'[email protected]']); 

Im [email protected] Methode:

public function show($category_id) 
{ 
    $categories = Category::all(); 
    $selected_category = Category::with('posts')->where('id', $category_id)->first(); 
    $posts = $selected_category->posts; 

    return redirect()->back()->with(compact('posts', 'categories')); 
} 

Sie können den Umleitungsort ändern.

+0

Ich habe so einen Fehler: BadMethodCallException in Builder.php Zeile 2177: Aufruf zu undefinierte Methode Illuminate \ Database \ Query \ Builder :: posts() – minchevz

+0

Haben Sie Ihre Beziehungen in Post- und Kategorie-Modellen festgelegt? –

+0

für Kategorie-Modell: öffentliche Funktion Beiträge() { Rückgabe $ this-> hasMany ('App \ Models \ Post'); } und für das Benutzermodell: öffentliche Funktionskategorie() { return $ this-> belongsTo ('App \ Models \ Category'); } – minchevz