【发布时间】:2021-06-11 14:11:31
【问题描述】:
如何将 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":{}}
【问题讨论】:
-
反应很好。方法 json 返回一个数组编码到 json。如果您只想返回响应。你可以这样做:
return $request;这返回你的请求。 -
我对您的示例进行了编码,它可以正常工作,没有任何错误或结果符合预期。
-
@MAY 感谢您的帮助。我不知道为什么,但如上所述,我在 json 响应中有一个空的
'request:{}'对象。然后$ids = request('ids', []);对我来说效果很好。
标签: php laravel routes get controller