2017-03-27 2 views
0

ich habe einen Neben nav mit 4 Tasten:anzeigen Via Kategorie Links Laravel 5.4

Computer
Laptops
Mobil
Tablet

Was ich will, ist eine Möglichkeit, meine Ansichten zu routen so Ich könnte die Posts bekommen, die nur in dieser Kategorie sind.

CategoryContoller

public function show(Category $category) 
    { 
     $posts = Category::findOrFail($category)->posts()->get(); 
    return view('pages.computer',compact('category'))->with('posts',$posts); 

Strecke

Route::get('{category}',[ 
      'uses' => '[email protected]', 
      'as' => 'pages.computer']); 

gehen auf diese Weise, wenn ich mywebsite setzen/Computer i erhalten Sie alle Beiträge, die in Computer-Kategorie sind, die gleiche, wenn ich mit mywebsite gehen /Handy, Mobiltelefon.
So funktioniert die Abfrage.
Nun, wie kann ich:

{{Route ('')}}

meine Ansichten, so kann ich jede Kategorie erhalten über die sidenav Links zu zeigen.

Antwort

0

Sie @foreach Schleife in Ihrem Ansicht erstellen können alle Kategorien zum Beispiel zu machen:

<ul> 

    @foreach($categories as $category) 

    <li><a href="categories/{{ $category->name }}">{{ $category->name }}</a></li> 

    @endforeach 

</ul> 

Edit:

alle Kategorien in Ihrem Links in der Ansicht zu erhalten Sie müssen sie zuerst in Ihrem Controller bekommen und sie dann mit der Ansicht übergeben:

zuerst müssen Sie eine Route erstellen:

Route::get('/',[ 
      'uses' => '[email protected]', 
      'as' => 'pages.index']); 

in Ihrer vorhandenen Index Methode:

public function index { 
    $categories = Category::all(); 
    return view('pages.index',compact('categories')); 
} 
+0

Einfacher Weg, aber wie kann ich den Kategorienamen wählen, ohne mywebsite/Computer manuell einzugeben – TasosTogr

+0

Ja ich weiß, dann können Sie sie durchlaufen, wie ich Ihnen oben auf meiner Antwort zeigte. willst du das erreichen? –

+0

Was Sie sagen, gibt mir alle Kategorien !! Was ich will, ist dies: Ich habe meine Route auf Route :: get ('{Kategorie}'), etc ... Nun, was ich suche ist eine Möglichkeit, Blade-Route zu verwenden, um einen Link zur Verwendung der oben genannten Route zu bekommen und das Kategoriefeld Computer oder Mobil oder jedes andere Wort, das ich möchte. – TasosTogr

0

Sie können versuchen, mit etwas ähnlichem.

<a href="{{ route('pages.computer', ['category' => $category->name]) }}"> 
    {{ $category->name }} 
</a> 

Ersetzen Sie einfach ->name durch was auch immer Spalte, die Sie in Ihrer URL verwenden.

+0

das sieht nach einem guten Weg aus !! werde es versuchen, nachdem ich nach Hause komme, während mein Problem ist, dass ich nicht herausfinden kann, wie man den Kategorienamen Computer auf meiner URI erscheint, ohne dass ich es manuell eintippe !! aus irgendeinem Grund irgendwie verwirrt. Wenn ich {{route ('pages.computer}}}} gehe, fehlt mir ein URI-Argument {Kategorie}. – TasosTogr

+0

Sie übergeben die Kategorie in den geschweiften Klammern wie ich es tat. – EddyTheDove