Как заменить значение вложенного массива внутри запроса Laravel с помощью слияния?

Существует функция замены ввода из запроса, которая называется слиянием. Я хотел бы изменить значение вложенного массива, чтобы его можно было проверить с помощью $this->validate method..

Это результат $request->all()

array:2 [
  "type" => "customer"
  "users" => array:1 [
      0 => array:3 [
        "name" => "eeee"
        "username" => "eeee"
        "password" => "123456"
      ]
  ]
]

Как мне получить доступ к значению имени пользователя и изменить его, если я использую forloop

for($i=0; $i < count($request->users); $i++){
    // i need to access the value here
    // i have done something like $request->merge(['users'][$index]['username'] => 'xxx');
    // it doesnt work
 }

Любое решение, ребята? Спасибо.


person Brian Ruchiadi    schedule 30.05.2017    source источник


Ответы (1)


Вы можете попробовать что-то подобное, используя метод слияния:

$new_users_data = $request->input('users');

foreach ($new_user_data as &$user_data) {
    $user_data['username'] = 'new name';
}

$request->merge([
    'users' => $new_users_data,
]);

Вы также можете заменить весь ввод новым с помощью заменить метод.

person arbogastes    schedule 30.05.2017
comment
Да, я забыл про передачу по ссылке - person Brian Ruchiadi; 30.05.2017