将嵌套数组添加到Laravel请求

时间:2019-04-02 09:06:38

标签: arrays laravel request

我试图在控制器的请求中添加到嵌套数组中。目前,我的要求如下:

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

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

我看到您可以像这样添加到请求中:

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

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

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

但是我得到了错误:

  

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

3 个答案:

答案 0 :(得分:0)

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

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

$request->merge($requestData);

答案 1 :(得分:0)

尝试一下。

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

答案 2 :(得分: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"])]);

没有其他捷径可以进行这种操作