Добавить вложенный массив в запрос Laravel - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь добавить к вложенному массиву запрос в моем контроллере.На данный момент мой запрос выглядит следующим образом:

+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');

Но я получаю ошибку:

Невозможно использовать временное выражение в контексте записи

Ответы [ 3 ]

0 голосов
/ 02 апреля 2019

Попробуйте это.

  $event = array_merge($request->request->get('my-event'), ['event-approved' => 0]
  $request->request->add(['my-event' => $event]);
0 голосов
/ 02 апреля 2019

Лучший и более быстрый подход:

$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 голосов
/ 02 апреля 2019

Я нашел способ сделать это, но может быть более эффективный способ сделать это:

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

$request->merge($requestData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...