2017-10-23 2 views
0

So habe ich eine Route definiert in meinem web.php, wie so ....Wie kann ich ein Routen-URL-Muster nach Routenname in Laravel erhalten?

Route::any('/items/{id}/{slug}', 'Items\[email protected]')->name('items.item'); 

Ich versuche, eine Funktion zu machen, wo ich die Zeichenfolge Muster für die URL bekommen, ‚/ Artikel/{ ID}/{Slug} 'von der Route, indem sie ihren Namen nennt ...

Ich nahm an, dies würde funktionieren .. aber es nicht (es sagt mir, ich vermisse die Parameter ID und Slug).

// Should assign the string 'items/{id}/{slug}' to the variable. 
$url_pattern = route('items.item'); 

Ich benutze Laravel 5.3.

Antwort

3

Sie können auf die Route ‚s uri wie folgt:

$url_pattern = app('router')->getRoutes()->getByName('items.item')->uri; 
var_dump($url_pattern); 
// will return: 
// "items/{id}/{slug}" 

Sie können immer eine faux Route erstellen. Wenn Sie route() aufrufen, müssen Sie davon ausgehen, dass Sie die erwarteten Parameter kennen.

Wenn Sie möchten, dass es als Zeichenfolge (zum Beispiel in JS verwendet werden), übergeben Sie einfach die Namen der Parameter als Parameter. Zum Beispiel:

$url_pattern = route('items.item', ['id' => '{id}', 'slug' => '{slug}']); 
// will generate: 
// items/{id}/{slug} 
+0

Sonderbare, sollte diese Arbeit .... Aber ich habe immer noch die fehlende erforderlicher Parameterfehler. – Ricky

+0

Arbeitete, danke! – Ricky

Verwandte Themen