Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据Laravel数组请求合并新值_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 根据Laravel数组请求合并新值

Php 根据Laravel数组请求合并新值,php,laravel,laravel-5,Php,Laravel,Laravel 5,如果我的所有输入值都在$request->input('users')上,我如何合并新值 大概是这样的: $request->merge(['users.dob' => '2000']); $users['dob'] = "2000"; $users['name'] = ucwords($request->users['name']); ... $request->merge(['users' => $users]); 但显然不起作用。试试这个: $data

如果我的所有输入值都在
$request->input('users')
上,我如何合并新值

大概是这样的:

$request->merge(['users.dob' => '2000']);
$users['dob']  = "2000";
$users['name'] = ucwords($request->users['name']);
...
$request->merge(['users' => $users]);
但显然不起作用。

试试这个:

$data= $request->input('users');
$data['dob'] = 2000;
$request->request->add(['users.dob', '2000']);
$request->request->add([
      'new-field1' => 'value 1', 
      'new-field2' => 'value 2'
    ]);
$originalInput = $request->input('users');
$defaultValue = [
    'dob' => 2000
];
$mergedResult = array_merge($defaultValue, $originalInput);
$request->merge([
    'users' => $mergedResult
]);
试试这个:

$data= $request->input('users');
$data['dob'] = 2000;
$request->request->add(['users.dob', '2000']);
$request->request->add([
      'new-field1' => 'value 1', 
      'new-field2' => 'value 2'
    ]);
$originalInput = $request->input('users');
$defaultValue = [
    'dob' => 2000
];
$mergedResult = array_merge($defaultValue, $originalInput);
$request->merge([
    'users' => $mergedResult
]);
似乎
merge()
不再起作用了。

你可以试试这个

public function __construct(\Illuminate\Http\Request $request)
{
    $request->request->add(
   ['date_of_birth' => implode('-',$request->only('year', 'month', 'day'))]);
 }

首先,我们需要获取属于该数组的所有项并临时保存

比如说,

$users = $request->users;
通过这种方式,您可以访问用户的数据,如
$users['name']
$users['name']

接下来,更新或添加您需要的任何数据。比如像这样,

$request->merge(['users.dob' => '2000']);
$users['dob']  = "2000";
$users['name'] = ucwords($request->users['name']);
...
$request->merge(['users' => $users]);
完成后,我们将临时数组合并回
$request
,如下所示:

$request->merge(['users.dob' => '2000']);
$users['dob']  = "2000";
$users['name'] = ucwords($request->users['name']);
...
$request->merge(['users' => $users]);
试试这个:

$data= $request->input('users');
$data['dob'] = 2000;
$request->request->add(['users.dob', '2000']);
$request->request->add([
      'new-field1' => 'value 1', 
      'new-field2' => 'value 2'
    ]);
$originalInput = $request->input('users');
$defaultValue = [
    'dob' => 2000
];
$mergedResult = array_merge($defaultValue, $originalInput);
$request->merge([
    'users' => $mergedResult
]);
试试这个:

$data= $request->input('users');
$data['dob'] = 2000;
$request->request->add(['users.dob', '2000']);
$request->request->add([
      'new-field1' => 'value 1', 
      'new-field2' => 'value 2'
    ]);
$originalInput = $request->input('users');
$defaultValue = [
    'dob' => 2000
];
$mergedResult = array_merge($defaultValue, $originalInput);
$request->merge([
    'users' => $mergedResult
]);
如果您正在寻找更优雅的东西(阅读:hard way)并提高代码的可重用性,您可以遵循以下步骤:

  • 创建一个服务提供者,在这里我们注册一个宏到
    Request
    对象
  • 写下你的提供者
  • 像老板一样使用它:

  • 这是迄今为止我找到的最好的解决办法。 假设您想修改请求中的封面图片名称

  • 将所有表单请求存储在一个变量中

    $requestData = $request->all();
    
  • 像这样修改数组

    $requestData->cover_image = "your new image name";
    
  • 保存您的数据

    $requestData->save();