Laravel: 如何将 GET 数组传递给控制器?
Laravel: how to pass GET array to controller?
如何将 GET 参数数组传递给控制器?
这是我的路由文件routes/web.php
:
<?php
use Illuminate\Support\Facades\Route;
use GuzzleHttp\Client;
Route::get('/ids', 'Parser@getIds');
还有我的控制器'app/Http/Controllers/Parser.php':
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class Parser extends Controller
{
public function getIds(Request $request) {
return response()->json($request); // ???
}
}
所以,我希望得到这样的参数数组:
$ids = [1,2,15,25];
但是如果我将 GET 数组传递到我的路由路径:http://example.com/ids?ids[]=1&ids[]=2&ids[]=15&ids[]=25
无论如何我得到一个空的请求对象:
{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}
从 GET 获取数据的方法很少。
尝试这样的事情:
$ids = request('ids', []); // global helper, empty array as default
或:
$ids = $request->input('ids', []); // via injected instance of Request
您可以获得更多信息in documentation
如何将 GET 参数数组传递给控制器?
这是我的路由文件routes/web.php
:
<?php
use Illuminate\Support\Facades\Route;
use GuzzleHttp\Client;
Route::get('/ids', 'Parser@getIds');
还有我的控制器'app/Http/Controllers/Parser.php':
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class Parser extends Controller
{
public function getIds(Request $request) {
return response()->json($request); // ???
}
}
所以,我希望得到这样的参数数组:
$ids = [1,2,15,25];
但是如果我将 GET 数组传递到我的路由路径:http://example.com/ids?ids[]=1&ids[]=2&ids[]=15&ids[]=25
无论如何我得到一个空的请求对象:
{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}
从 GET 获取数据的方法很少。 尝试这样的事情:
$ids = request('ids', []); // global helper, empty array as default
或:
$ids = $request->input('ids', []); // via injected instance of Request
您可以获得更多信息in documentation