Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从请求的数组中添加/删除元素

如何从请求的数组中添加/删除元素
EN

Stack Overflow用户
提问于 2018-07-30 22:46:49
回答 3查看 4.8K关注 0票数 3

我的请求是这样的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Array
(
  [name] => Eugene A
  [address] => Array
    (
        [billing] => Array
            (
                [address] => aaa
            )
        [shipping] => Array
            (
                [address] => bbb
            )
    )
)

我要删除送货地址。但是怎么做呢?

我只能删除这两个地址,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$request->request->remove('address');

但我不想要。

我只想删除投递地址,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$request->request->remove('address.shipping');

但这对我不起作用

Laravel 5.6

更新

为什么我需要它?

很简单。我已经将表单请求验证抽象为一个类,该类是Illuminate\Foundation\Http\FormRequest的子类。实际上,我几乎没有几个要验证的类。我在控制器里一个接一个地叫他们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app()->make(CustomerPostRequest::class); // validate Customer information
app()->make(AddressSaveRequest::class); // validate Addresses

为什么?

现在我可以在单元测试中模拟这个请求,并且我可以将我的验证抽象出来。我可以在很多地方使用地址验证。

但现在我需要更多的灵活性。为什么?

因为AddressSaveRequest规则看起来像这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function rules(): array
  {
    return [
        'address.*.address'    => [
            'bail',
            'required',
            'string',
        ],
   ...

它验证了所有的地址。但有时我不想验证传送地址,如果chech_box - ship_to_the_same_address是勾选的话。

但是我的地址验证器被抽象成单独的文件,并且在许多地方都使用它。有些地方没有显示ship_to_the_same_address勾框。

因此我不能使用'required_unless:ship_to_same_address,yes',

我不能用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app()->makeWith(AddressSaveRequest::class, ['ship_to_the_same_address ' => 'yes']);

因为泰勒 ...when calling makeWith. In my opinion it should make a new instance each time this method is called because the given parameter array is dynamic.。而且它在app()->instance(AddressSaveRequest::class, $addressSaveRequest);中不能正常工作,也不能在单元测试中被模拟。

为什么泰勒决定-我真的不知道。

PS和是的,我知道不推荐嘲弄请求。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-30 23:32:11

如果您试图从请求本身添加或删除输入:

通过将数据合并到请求中并让Laravel处理正在使用的数据源,您可以很容易地将数据添加到请求中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$request->merge(['input' => 'value']);

它将在名为input的输入中合并到请求的输入源。

为了删除输入,您可以尝试替换替换中没有该特定输入的所有输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$request->replace($request->except('address.shipping'));

只是一个尝试的想法。

票数 5
EN

Stack Overflow用户

发布于 2018-07-30 22:55:00

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$request->except(['address.shipping']);

详细信息:Laravel请求

票数 2
EN

Stack Overflow用户

发布于 2018-07-30 23:08:18

Laravel有一个名为array_forget的助手方法,它所做的和听起来完全一样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$requestArray = $request->all();

$newArray = array_forget($requestArray, 'address.shipping')

文档

在对主问题进行编辑之后,为什么要删除请求的某些输入,我的主要答案就不再正确了。用户Lagbox有正确的答案用于所问的问题。

但是,我想指出的是,另一种解决方案是将请求类与验证分开。一个用于下订单(假设它是一个有人可以订购东西的系统),另一个用于更新您的帐户,如ship_to_same_addressUpdateAccountRequest类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51606998

复制
相关文章
js数组添加删除数据_如何删除数组中的元素
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
14.4K0
js数组添加删除数据_如何删除数组中的元素
c语言从数组中删除指定元素_c语言数组添加元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169514.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.8K0
c语言从数组中删除指定元素_c语言数组添加元素
numpy入门-数组中添加和删除元素
**numpy.insert(arr,obj,value,axis=None) **
皮大大
2021/03/02
6.3K0
删除数组中某个指定元素的值_如何删除数组中的元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169504.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
12.6K0
vue删除数组中指定元素_如何删除数组中的元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169518.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
7.8K0
怎样从数组中删除给定元素_java数组包含某个元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169528.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.1K0
怎样从数组中删除给定元素_java数组包含某个元素
es6删除数组指定元素_如何删除数组中的元素
如图,这个数组里面有三个元素,现在要删掉这个id是24的元素,那我们代码就应该这么写
全栈程序员站长
2022/09/22
6.8K0
es6删除数组指定元素_如何删除数组中的元素
java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]
java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子。
全栈程序员站长
2022/09/22
8.3K0
Array对象---添加或删除数组中的元素->splice()
定义: splice() 方法用于添加或删除数组中的元素。(会修改原始数据) 参数说明: array.splice(index,howmany,item1,.....,itemX) 1、index 必需。规定从何处添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。(从0开始) 2、howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 3、item1, ..., itemX 可选。要添加
听着music睡
2021/11/02
3.7K0
java如何向数组中添加元素[数组的添加]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java如何向数组中添加元素[数组的添加],希望能够帮助大家进步!!!
Java架构师必看
2022/04/06
7.7K0
Java中如何添加元素到数组
数组是Java中最普遍的数据结构之一,它能够存储多个相同类型的值。然而Java的数组一旦被定义,其大小就会固定。这就意味着你不能直接使用数组方法添加新元素到数组中。但你可以通过一些间接的方法实现这个目标,比如:创建新数组、使用ArrayList、使用Apache Commons库等。
很酷的站长
2023/09/29
2690
Java中如何添加元素到数组
用于从数组中删除重复元素的 Python 程序
python 中的索引从 0 开始。在上面的块中,整数 6、4、1、5、9 是数组元素,0、1、2、3、4 是各自的索引值。
很酷的站长
2023/08/11
2790
如何在 JS 中的数组开头添加元素?
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
前端小智@大迁世界
2021/03/02
9.6K0
[javascript] js删除数组中的元素
arr.splice(start,delete_length) 这种方式数组长度相应改变,原来的索引也相应改变。 splice()删除后返回的是删除的元素。 另外splice()还可以添加,替换数组元素。
唯一Chat
2021/08/05
11.4K0
如何从 Python 列表中删除所有出现的元素?
在 Python 中,列表是一种非常常见且强大的数据类型。但有时候,我们需要从一个列表中删除特定元素,尤其是当这个元素出现多次时。本文将介绍如何使用简单而又有效的方法,从 Python 列表中删除所有出现的元素。
网络技术联盟站
2023/06/01
12.3K0
php删除数组中指定的元素,php如何删除数组中指定的元素?
php删除数组中指定元素的方法:1、使用【array_splice()】函数删除,代码为【key = array_search(3, arr1)】;2、使用【unset()】函数删除,代码为【unset(arr2[key])】。
全栈程序员站长
2022/09/22
11.4K0
php删除数组中指定的元素,php如何删除数组中指定的元素?
js删除数组中指定的元素_java数组删除元素
要删除数组中的指定的元素,当然肯定少不了遍历,肯定得匹配指定的index,然后用数组的splice()方法来实现,因为pop()从数组尾部删除元素,shift()从数组头部删除第一个元素,还有delete(),当然,splice()方法可以删除数组中任意位置的元素。
全栈程序员站长
2022/09/22
9.5K0
js删除数组中指定的元素_java数组删除元素
Python 中如何向列表或数组添加元素
然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。
Python学习者
2023/09/11
3600
Python 数组和列表:创建、访问、添加和删除数组元素
本页将向您展示如何使用列表作为数组,但要在 Python 中使用数组,您需要导入一个库,比如 NumPy 库。数组用于在一个变量中存储多个值:
小万哥
2023/10/23
1.4K0
Python 数组和列表:创建、访问、添加和删除数组元素
如何优雅的从Array中删除一个元素
从JavaScript数组中删除元素是开发人员经常遇到的常见编程范例。与许多JavaScript一样,这并不像它应该的那么简单。
Jean
2018/12/21
9.8K0

相似问题

从数组中添加/删除元素

11

如何根据数组内容从数组中添加/删除元素

22

从数组中添加和删除元素

14

JS:从数组中添加/删除元素

50

如何从数组onClick中删除和添加元素?

310
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文