2015-11-16 17 views

答えて

3

クエリ文字列はURIの一部ではないため、クエリ文字列をルートに定義しないでください。

クエリ文字列にアクセスするには、リクエストオブジェクトを使用する必要があります。 $request->query()はすべてのクエリパラメータの配列を返します。生成するには

:また、あなたのルートはその後、コメントなど

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

編集のようになり

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

$request->query('key')

単一のクエリのparamを返すためにそのように使用することができますURLは、Laravel内でURLジェネレータを使用している場合があります。生成するクエリパラメータの配列をURLに指定するだけです。

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

だから私はこれを私の見解からどのように呼びますか? –

+0

あなたのオプションは、あなたのコントローラに変数を設定し、通常のようにそれらをあなたのビューに渡すことです(私はあなたがそれらを検証することができるので、これを助言します。あるいは、あなたのビュー 'Request :: query()'でファサードを直接使うことができます – Wader

+0

事は私が行っていたことです ' ' これはこれです。今はできないと思う。 –

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

あなたのURLは、次のようになります。http://category/1/recent/ascまたディレクトリに適切な.htaccessファイルが必要です。 .htaccessファイルがないと、あなたのURLはhttp://category/?q=1/recent/ascのようになります。しかし、私は$_GETパラメータ(?q=)についてわからない。

+0

あなたは私の質問に誤解しました。私はそれがあなたが言っているものを得る。しかし、私はそれをクエリ文字列で行いたい。 –

13

あなたは、URL内の他のパラメータを持っている場合に使用することができます。

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

GOLDの答えです!ありがとう –

関連する問題