【问题标题】:Create dynamic request object in Laravel在 Laravel 中创建动态请求对象
【发布时间】: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]]);

【问题讨论】:

    标签: json laravel request


    【解决方案1】:
    $myRequest = new \Illuminate\Http\Request();
    $myRequest->setMethod('POST');
    $myRequest->request->add(['foo' => 'bar']);
    dd($request->foo);
    

    这来自您共享的链接,试一试。感谢您分享该链接!

    【讨论】:

      猜你喜欢
      • 2017-03-08
      • 2019-09-21
      • 2019-04-21
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多