2015-11-16 16 views

risposta

3

Le stringhe di query non devono essere definite nel percorso poiché la stringa di query non fa parte dell'URI.

Per accedere alla stringa di query è necessario utilizzare l'oggetto richiesta. $request->query() restituirà un array di tutti i parametri di query. Si può anche utilizzare come tale per restituire una singola query param $request->query('key')

class MyController extends Controller 
{ 
    public function getAction(\Illuminate\Http\Request $request) 
    { 
     dd($request->query()); 
    } 
} 

Si percorso sarebbe allora come tale

Route::get('/category/{id}'); 

Edit per i commenti:

per generare un L'URL che puoi ancora utilizzare con il generatore di URL in Laravel, fornisce solo una serie di parametri della query che desideri generare con l'URL.

url('route', ['query' => 'recent', 'order' => 'desc']); 
+0

Ok. Quindi, come lo chiamo dal mio punto di vista? –

+0

Le opzioni sono per impostare le variabili nel controller e passarle nella visualizzazione normalmente (vorrei raccomandarlo come è possibile quindi convalidarle. Ricordare che sono input dell'utente!). Oppure puoi usare la facciata direttamente nella tua vista 'Richiesta :: query()' – Wader

+0

Il fatto è che stavo facendo '' questo. Immagino che ora non posso farlo. –

0
Route::get('category/{id}/{query}/{sortOrder}', [ 
    'as' => 'sorting', 
    'uses' => '[email protected]' 
])->where([ 
    'id' => '[0-9]+', 
    'query' => 'price|recent', 
    'sortOrder' => 'asc|desc' 
]); 

E l'url dovrebbe essere simile al seguente: http://category/1/recent/asc. Inoltre è necessario un file .htaccess corretto nella directory public. Senza il file .htaccess, l'url dovrebbe essere simile a http://category/?q=1/recent/asc. Ma non sono sicuro del parametro $_GET (?q=).

+0

Hai frainteso la mia domanda. Capisco quello che stai dicendo. Ma voglio farlo con stringhe di query. –

13

se si dispone di altri parametri url è possibile utilizzare;

request()->fullUrlWithQuery(["sort"=>"desc"]) 
+0

risposta GOLD! Grazie –