(php) php laravel 添加 $request->all() 字段

php 代码

public function storeRequest $request
{ $name = $request->getnamne, 0; $newname = $request->setnewname, 0; // 前端提交 `data` 里面没有 `newname` 这个字段, // 需要在这里处理一些业务逻辑,新增一个字段然后到下面一起保存起来 // $request->newname = newname // 尝试过这样好像没写进入 //想在保存数据前,添加一个字段 ; // $request->all->新的字段名称 = 我是新加的字段值; // 这个时候 $request->all 会多出来上面新添加的字段 $post = Post::create$request->all; }

vue 代码

this.$http.post/backend/post, data.thenfunctionresult { }

大神 有木有,该如何在保存前 在 $request->all 里面添加一个字段呢

$request->all // 这是一个数组吧,array_merge 是你的需求么

$array = $request->all;
$array[test] = test; $post = Post::create$array;

常用的几个操作 input 的方法:

// 合并输入,如果有相同的key,用户输入的值会被替换掉,否则追加到 input
$request->merge[foo => bar, ....]; // 替换所有输入
$request->replace[..] // 设置某参数,如果存在则替换,否则新增
$request[foo] = bar; // 移除某参数
unset$request[foo]

用array_merge生成新数组,而不是在里面添加一个键值对,你不觉得这样更合理吗

$request->replacearray_merge$request->all,[ key=>val;
]; dd$request->all;

建议你看一下request的源码:
例如:(merge方法,将一个新值合并到request中)

 /** * Merge new input into the current requests input array. * * @param array $input * @return void */ public function mergearray $input { $this->getInputSource->add$input; }

所以我们可以使用:

$request->merge[newKey => newValue];

发表评论

电子邮件地址不会被公开。 必填项已用*标注