Laravel 5 – link_to_route() metodo di fare il mio percorso parametri da modificare nella Stringa di Query aggiungendo “?” alla fine

Dopo ore di ricerca ancora non riuscivo a trovare la mia risposta per quanto riguarda L5.

Ciò che il mio problema è :

Voglio fare un link simile a questo:

localhost:800/songs/you-drive-me-crazy

MA quello che si ottiene è:

localhost:800/songs?you-drive-me-crazy

mio percorso parametro viene modificato in query string.

//routes.php

$router->bind('songs', function($slug)
{
return App\Song::where('slug', $slug)->first();
});


$router->get('songs', ['as' => 'songs.index', 'uses' =>    '[email protected]'] );

$router->get('songs/{songs}', ['as' => 'songs.show', 'uses' => '[email protected]'] );

Sto usando:

{!! link_to_route('songs.index', $song->title, [$song->slug])  !!}

Ho provato di tutto ma non sono ancora riusciti a,il tuo suggerimento può essere utile.

Grazie.

L5 == Laravel 5?
sì, L5 == Laravel 5
provare questo {!! link_to_route(‘canzoni.l’indice’, $canzone->titolo,[‘canzoni’=>$canzone->slug]) !!}
una cosa di più e hai il tuo url di base correttamente in app.php ?

OriginaleL’autore Saj | 2015-06-02

2 Replies
  1. 11

    L’utilizzo di link_to_route non è corretto:

    {!! link_to_route('songs.index', [$song->title, $song->slug])  !!}

    Il primo parametro è il nome del percorso, il secondo parametro è un array di parametri del percorso, preferibilmente utilizzando la chiave di valore. Perché non mostrare il vostro itinerario definito, è difficile indovinare che cosa questo array associativo dovrebbe assomigliare a questo:

    {!! link_to_route('songs.index', ['title'=>$song->title, 'slug'=>$song->slug])  !!}

    Anche io ti consiglio di utilizzare le funzioni documentati: route(), vedere: http://laravel.com/docs/5.0/helpers#urls

    Correttamente richiesto il percorso utilizzando route():

    {!! route('songs.index', ['title'=>$song->title, 'slug'=>$song->slug])  !!}

    Correttamente formattata percorso, quindi, sarebbe:

    Route::get('songs/{title}/{slug}', ['as' => 'songs.index', 'uses' => '[email protected]']);

    Questo si tradurrà in un URL come questo: http://localhost:800/songs/you-drive-me-crazy/slug

    Se si desidera aggiungere il titolo, l’URL ma non lo slug, utilizzare un percorso come questo:

    Route::get('songs/{title}', ['as' => 'songs.index', 'uses' => '[email protected]']);

    Questo si tradurrà in un URL come questo: http://localhost:800/songs/you-drive-me-crazy/?slug=slug

    Utilizzando

    Route::get('songs/{slug}', ['as' => 'songs.index', 'uses' => '[email protected]']);

    L’URL sarà simile: http://localhost:800/songs/you-drive-me-crazy/?title=title assumendo slug ora è you-drive-me-crazy

    Aggiunta di un parametro in un route() chiamata verrà aggiunto come parametro GET se non esistente nel percorso di definizione.

    non il suo lavoro.
    il secondo parametro è il testo che viene visualizzato come un link. non può essere un array
    qual è il tuo routes.php definizione
    get(‘canzoni’, [‘as’ => ‘di canzoni.indice’, ‘usa’ => ‘[email protected]’] ); get(‘canzoni/{canzoni}’, [‘as’ => ‘di canzoni.show’, ‘usa’ => ‘[email protected]’] );
    è necessario definire i parametri di troppo; get('songs/{title}/{slug}'.. vedi: laravel.com/docs/5.0/routing#route-parameters

    OriginaleL’autore Luceos

  2. 1

    risolto, grazie per il vostro grande preoccupazioni e suggerimenti.

    Ero collegamento sbagliato rotta qui:

    `{!! link_to_route('songs.index', $song->title, [$song->slug])  !!}`

    ora, ho cambiato come :

    `{!! link_to_route('songs.show', $song->title, [$song->slug])  !!}`

    e ha fatto il trucco.

    OriginaleL’autore Saj

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *