将嵌套数组添加到Laravel请求

问题描述 投票:0回答:3

我试图在我的控制器中的请求中添加嵌套数组。目前,我的请求看起来像这样:

+request: ParameterBag {#43 ▼
#parameters: array:3 [▼
"_token" => "*****"
"my-event" => array:26 [▼
"title" => "my new event"
"start-date" => "2019-05-01"
 .....

我想在“my-event”数组中添加此请求,例如“事件已批准”,值为0。

我可以看到你可以像这样添加一个请求:

$request->request->add(['my-key' => 'value']);

但我不确定如何为嵌套数组执行此操作。我想要的东西是这样的:

$request->request->add(['my-event']['event-approved'] = '0');

但是我收到了错误:

在写上下文中不能使用临时表达式

arrays laravel request
3个回答
0
投票

更好更快的方法是:

$event = $request->request->get('my-event');
$event['event-approved'] = "0";
$request->request->add(['my-event'=>$event]);

请注意,除了仅设置my-event字段外,它不会覆盖event-approved数组的任何现有字段。

或者,如果你想要一次尝试:

$request->request->add(['my-event'=>array_merge($request->request->get('my-event'),['event-approved'=>"0"])]);

这种操作没有其他简便方法


0
投票

我找到了一种方法,但可能有一种更有效的方法:

$requestData = $request->all();
$requestData['my-event']['event-approved'] = "0";

$request->merge($requestData);

0
投票

试试这个。

  $event = array_merge($request->request->get('my-event'), ['event-approved' => 0]
  $request->request->add(['my-event' => $event]);
© www.soinside.com 2019 - 2024. All rights reserved.