使用点符号添加对象数组
Add array of objects with the dot notation
用下面的代码Arr::set($array, 'messages.to.email', $value);
这将生成如下输出:
{
"messages": {
"subject": "this is out email",
"to": {
"email": "myemail@gmail.com"
}
}
}
我的问题是我需要这个输出:
{
"messages": [{
"subject": "this is out email",
"to": {
"email": "myemail@gmail.com"
}
}]
}
作为对象数组的消息。我一直无法找到一种本地方式来做这件事,所以我正在考虑手动添加 messages[].to.email
之类的东西
我错过了什么吗?魔术助手或语法?实现我正在寻找的东西?
如果您为消息使用索引,它将强制它成为一个数组:
Arr::set($array, 'messages.0.to.email', $value);
这只是通过指定在 'messages' 和 'to' 之间添加另一个 level/container。可以命名为任何名称,但 0
在这里用于零索引数组,这将是 JSON 中的数组而不是对象。
用下面的代码Arr::set($array, 'messages.to.email', $value);
这将生成如下输出:
{
"messages": {
"subject": "this is out email",
"to": {
"email": "myemail@gmail.com"
}
}
}
我的问题是我需要这个输出:
{
"messages": [{
"subject": "this is out email",
"to": {
"email": "myemail@gmail.com"
}
}]
}
作为对象数组的消息。我一直无法找到一种本地方式来做这件事,所以我正在考虑手动添加 messages[].to.email
我错过了什么吗?魔术助手或语法?实现我正在寻找的东西?
如果您为消息使用索引,它将强制它成为一个数组:
Arr::set($array, 'messages.0.to.email', $value);
这只是通过指定在 'messages' 和 'to' 之间添加另一个 level/container。可以命名为任何名称,但 0
在这里用于零索引数组,这将是 JSON 中的数组而不是对象。