Laravel Queries Strings

Mel*_*ans 29 url query-string laravel laravel-4 laravel-routing

有没有人知道是否可以在Laravel中使用URL查询.

我有以下路线:

Route::get('/text', 'TextController@index');
Run Code Online (Sandbox Code Playgroud)

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

http://example.com/text?color={COLOR}
Run Code Online (Sandbox Code Playgroud)

我将如何在Laravel内接近这个?

Kry*_*ten 34

对的,这是可能的.试试这个:

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

并通过去打电话给它http://example.com/test?color=red.

当然,您可以通过额外的参数来扩展它,以满足您内心的需求.试试这个:

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

并添加一些参数:

http://example.com/?color=red&time=now&greeting=bonjour`
Run Code Online (Sandbox Code Playgroud)

这会给你

Array
(
    [color] => red
    [time] => now
    [greeting] => bonjour
)
Run Code Online (Sandbox Code Playgroud)


cam*_*ase 32

对于未来的访问者,我使用下面的方法> 5.0.它利用Laravel的Request,可以帮助保持业务逻辑出你的routescontroller.

示例URL

admin.website.com/get-grid-value?object=Foo&value=Bar
Run Code Online (Sandbox Code Playgroud)

routes.php文件

Route::get('get-grid-value', 'YourController@getGridValue');
Run Code Online (Sandbox Code Playgroud)

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();
}
Run Code Online (Sandbox Code Playgroud)

有关从请求对象检索输入的更多信息,请阅读文档.

  • 这是$ request-> query('object'); 用于查询字符串参数. (2认同)

mal*_*hal 6

查询参数使用如下:

use Illuminate\Http\Request;

class ColorController extends BaseController{

    public function index(Request $request){
         $color = $request->query('color');
    }
Run Code Online (Sandbox Code Playgroud)