从 Laravel 访问查询字符串值

有谁知道是否有可能在Laravel中使用URL查询。

我有以下路线:

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

该页面上的文本基于以下 url 查询:

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

在Laravel中,我会如何处理这个问题?


答案 1

对于未来的访问者,我使用以下方法。它利用了 Laravel 的 Request,可以帮助将业务逻辑排除在 and 之外。> 5.0routescontroller

示例网址

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

路线.php

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

您的主计长.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();
}

有关从请求对象检索输入的详细信息,请阅读文档


答案 2

是的,这是可能的。试试这个:

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
)

推荐