如何使用merge替换Laravel请求中的嵌套数组值?

时间:2017-05-30 08:20:11

标签: php laravel laravel-5.4 laravel-request

有一个函数可以替换请求中的输入,称为merge。 我想更改嵌套数组的值,以便$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
 }

任何解决方案的家伙? 谢谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试使用merge方法:

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

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

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

您还可以使用请求replace method替换整个输入。