2015-01-08 15 views

Odpowiedz

0

można dodać dowolną liczbę parametrów do adresu URL, jak ty na przykład:

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

Teraz, gdy chcesz utworzyć link do tej strony można wykonać następujące czynności:

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

Aktualizacja:

Jeżeli jesteś pewien, że nigdy nie będzie dwóch książek z ten sam tytuł, możesz po prostu użyć nazwy książki w adresie URL. Po prostu trzeba to zrobić:

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

W funkcji showBook trzeba dostać książkę z bazy danych przy użyciu name zamiast id. Gorąco zachęcam do używania zarówno identyfikatora, jak i nazwy, ponieważ w przeciwnym razie możesz wpaść w kłopoty, ponieważ nie sądzę, aby nazwa książki zawsze była unikalna.

+0

Chyba zrozumiał, co chcę zrobić dokładnie .. W pasek adresu URL, nie chcę mieć adresu URL, który wygląda/books/1 raczej/book/name-of-book. Czy twoja odpowiedź spełnia swoją funkcję? – arakibi

+0

Mam edytować odpowiedź dla Ciebie :) – Jerodev

+0

Naprawdę wolę nie robić tego w ten sposób, chciałbym trzymać się z id jako parametr, aby znaleźć książkę z bazy danych. ale pokaż jej nazwę w pasku adresu: – arakibi

0

Można też zrobić coś takiego:

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

Więc można dostać książkę id jeśli zdać url jak: http://website.url/books/1-book-name