我在Laravel 5.8中有一个API路由(POST),它在URL中包含一个参数。但是,当我使用$request->all()
检查所有请求数据时,请求属性的URL部分有很大一部分。这似乎在我的本地环境中不会发生。
路由定义如下:
// Protected routes
Route::group(['middleware' => 'jwt'], function () {
Route::post('/orders/set/{orderId}', 'Api\OrderController@setOrder');
});
在控制器中,我正在检查所有请求参数以验证它们。我通过以下方式检索控制器参数中的所有参数:
/**
* @param Request $request
* @param $orderId
* @return JsonResponse
*/
public function setOrder(Request $request, $orderId)
{
$error = false;
$result = [];
$requestAttributes = $request->all();
// etc...
return response()->json($result, $error ? 500 : 200);
}
这在我的本地环境下工作正常。但是,如果我在测试环境中使用此代码(我有一个临时奇怪的URL结构,这会导致我认为的问题),则$requestVariable
属性将包含URL的一大部分。
URL结构如下:
http://test.laravelenvironment.mysite.com/laravel/api/orders/set/12
带有帖子数据:
array(2) {
["shipping_method"]=>
int(1753)
["order_date"]=>
string(10) "05/29/2019"
}
当我转储$request->all()
时,您会发现请求数据中有很大一部分URL不会发生:
array(3) {
["/api/orders/set/12"]=>
NULL
["printed_date"]=>
string(19) "05/29/2019"
["shipping_method"]=>
string(4) "1753
}
其他API端点似乎工作正常。是什么引起了这个问题,我该如何解决?