2016-08-04 10 views
1

Konnte an einen beschreibenden Titel nicht denken.Laravel 5 - Routentypen

Hier ist das Dilemma, ich frage mich, ob jemand einen guten Ansatz dazu hat oder ob ich etwas Offensichtliches übersehen habe?

Bild dieser beiden Routen:

/category/product 
/parent/child 

Die erste Strecke handelt mit Produkten in einem Geschäft. Die zweite Route behandelt reguläre Seiten im CMS.

Wie kann ich diese beiden Routen in meiner Anwendung unterscheiden? Ich möchte nicht vor jeder Route etwas hinzufügen (zB/Shop/Kategorie/Produkt,/Seite/Eltern/Kind), wenn möglich.

Irgendwelche Ideen?

Antwort

1

in Ihrem routes.php Datei diesen Code setzen

Route::get('/{action?}/{name?}',[ 
     'uses' =>'NiceActionContr[email protected]', 
     'as' =>'niceaction' 
    ]); 

dann auf Controller-Ordner gehen und eine Datei NiceActionController erstellen dann:

<?php 
namespace App\Http\Controllers; 
use \Illuminate\Http\Request; 
class NiceActionController extends Controller 
{ 
    public function getNiceAction($action,$name=null) 
    { 
     return view('actions.'.$action , ['name' => $name]) ; 
    } 
} 
+0

Sie haben hier die Aktion in der URL zu liefern, die nicht das, was ich brauche. Nach Kategorie/Produkt - Kategorie wäre der tatsächliche Kategoriename, und Produkt wäre der tatsächliche Produktname. Macht das Sinn? – user3767977

+0

einfach können Sie Produkt mit Aktionstext ändern –

0

Sie können Ihre Routen gruppieren.

Route::group(['prefix' => 'parent'], function() { 
Route::get('child', '[email protected]'); 
Route::get('anotherchild', '[email protected]'); 
}); 

Dies gibt Ihnen Routen /parent/child und /parent/anotherchild.

Es gibt mehr Möglichkeiten, mehr dazu bei documentation