2015-01-08 5 views

Antwort

0

Sie können zu halten fügen Sie so viele Parameter an die uRL, wie Sie mögen, so:

Route::get('/books/{id}/{name}', '[email protected]'); 

Nun, wenn Sie eine URL zu dieser Seite erstellen möchten Sie folgendes tun:

URL::action('[email protected]', ['id' => 1, 'name' => 'My awesome book']); 

Update:

Wenn Sie sicher sind, dass es nie mit der zwei Bücher sein gleichen Titel, können Sie einfach den Namen des Buches in der URL verwenden. Sie müssen nur dies tun:

Route::get('/books/{name}', '[email protected]'); 

In Ihrer Funktion showBook Sie das Buch aus der Datenbank erhalten müssen die name anstelle des id verwenden. Ich empfehle dringend, sowohl die ID als auch den Namen zu verwenden, da Sie sonst in Schwierigkeiten geraten können, weil ich nicht glaube, dass der Buchname immer eindeutig sein wird.

+0

Ich glaube, Sie falsch verstanden, was ich genau tun wollen .. In die URL-Leiste, ich möchte keine URL haben, die/books/1 eher/book/name-of-book aussieht. Beantwortet Ihre Antwort den Job? – arakibi

+0

Ich habe meine Antwort für Sie bearbeitet :) – Jerodev

+0

Ich bevorzuge es wirklich nicht, ich würde gerne mit der ID als Parameter bleiben, um das Buch aus der Datenbank zu finden. aber zeigen Sie seinen Namen in der URL-Leiste – arakibi

0

Man könnte auch so etwas tun:

Route::get('books/{name}', function($name){ 
    $url = explode("-", $name); 
    $id = $url[0]; 
    return "Book #$id"; 
}); 

So können Sie Buch von id erhalten, wenn Sie eine URL übergeben wie: http://website.url/books/1-book-name