web-dev-qa-db-ja.com

Laravel=クエリ文字列

Laravel内でURLクエリを使用できるかどうかは誰にもわかりますか。

次のルートがあります。

Route::get('/text', 'TextController@index');

また、そのページのテキストは、次のURLクエリに基づいています。

http://example.com/text?color={COLOR}

Laravel内でこれにどのようにアプローチしますか?

29
Melvin Koopmans

はい、可能です。これを試して:

Route::get('test', function(){
    return "<h1>" . Input::get("color") . "</h1>";
});

http://example.com/test?color=redにアクセスして呼び出します。

もちろん、あなたの心のコンテンツへの追加の引数でそれを拡張することができます。これを試して:

Route::get('test', function(){
    return "<pre>" . print_r(Input::all(), true) . "</pre>";
});

さらにいくつかの引数を追加します。

http://example.com/?color=red&time=now&greeting=bonjour`

これはあなたに与えます

Array
(
    [color] => red
    [time] => now
    [greeting] => bonjour
)
34
Kryten

将来の訪問者のために、> 5.0。 Laravelの Request class を利用し、routesおよびcontrollerからビジネスロジックを排除するのに役立ちます。

URLの例

admin.website.com/get-grid-value?object=Foo&value=Bar

Routes.php

Route::get('get-grid-value', 'YourController@getGridValue');

YourController.php

/**
 * $request is an array of data
 */
public function getGridValue(Request $request)
{
    // returns "Foo"
    $object = $request->query('object');

    // returns "Bar"
    $value = $request->query('value');

    // returns array of entire input query...can now use $query['value'], etc. to access data
    $query = $request->all();

    // Or to keep business logic out of controller, I use like:
    $n = new MyClass($request->all());
    $n->doSomething();
    $n->etc();
}

要求オブジェクトからの入力の取得の詳細については、 ドキュメントを読む

30
camelCase

クエリパラメータは次のように使用されます。

use Illuminate\Http\Request;

class ColorController extends BaseController{

    public function index(Request $request){
         $color = $request->query('color');
    }
6
malhal
public function fetchQuery(Request $request){
  $object = $request->query('object');
  $value = $request->query('value');
}
0
Joshua Oluikpe