【发布时间】:2020-10-11 22:12:36
【问题描述】:
我正在寻求帮助来创建 Illuminate\Http\Request 类型的对象。这篇文章帮助我理解了类的机制,但是我没有得到想要的结果。
Create a Laravel Request object on the fly
我正在编辑客户传递给我的开发代码。代码有一个函数,从vue获取请求参数并将其转换为JSON:
$json = $request->json()->get('data');
$json['some_key'];
此代码返回一个空的数据数组:
$json = $request->request->add([some data]);
或
$json = $request->request->replace([some data]);
这个因为缺少add参数而返回错误
$json = $request->json->replace([some data]);
通过尝试和错误发现了一个变体。也许,它可以帮助某人节省时间:
public function index() {
$myRequest = new \Illuminate\Http\Request();
$myRequest->json()->replace(['data' => ['some_key' => $some_data]]);
$data = MyClass::getData($myRequest);
}
..
class MyClass extends ...
{
public static function getData(Request $request) {
$json = $request->json()->get('data');
$json['some_key'];
此外,类中还有其他字段,您还可以将数据滑入,以便您可以通过 Request 传递您想要的所有内容
$myRequest->json()->replace(['data' => ['some_key' => $some_data]]);
..
$myRequest->request->replace(['data' => ['some_key' => $some_data]]);
..
$myRequest->attributes->replace(['data' => ['some_key' => $some_data]]);
..
$myRequest->query->replace(['data' => ['some_key' => $some_data]]);
【问题讨论】: