【问题标题】:How to replace nested array value inside the Laravel request using merge?如何使用合并替换 Laravel 请求中的嵌套数组值?
【发布时间】:2017-10-30 14:57:35
【问题描述】:

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

有什么解决办法吗? 谢谢。

【问题讨论】:

    标签: php laravel laravel-5.4 laravel-request


    【解决方案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,
    ]);
    

    您还可以通过请求replace method 将整个输入替换为新输入。

    【讨论】:

    • 是的,我忘了通过引用传递
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2021-11-04
    • 2020-05-03
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多