【发布时间】:2019-08-06 08:56:14
【问题描述】:
我有一个 JSON 请求,我需要更改模型对象键上所有相似的对象键名称,我在嵌套数组对象方面遇到困难,并且点符号在这部分不起作用。
这是我的验证请求代码:
<?php
namespace App\Http\Requests\Api\Nutmeg;
use Illuminate\Foundation\Http\FormRequest;
class WebhookValidation extends FormRequest
{
protected $map = [
'callback_url' => 'url',
'tokenApi' => 'secret_token',
'supplier' => 'agent',
'supplier.*.key.*' => 'id',
'supplier.*.number.*' => 'quantity'
];
protected $jsonConvert;
public function setJson($json)
{
foreach($this->map as $original => $new) {
$json->set($new, $json->get($original));
$json->remove($original);
}
$this->jsonConvert = $json;
}
public function validationData()
{
return $this->jsonConvert->all();
}
public function rules()
{
return [
'url' => 'bail|required|url|unique:webhooks,url',
'secret_token' => 'required',
'agent.*.id' => 'required',
'agent.*.quantity' => 'required'
];
}
public function messages()
{
return [
'url.unique' => 'Url should be unique',
'secret_token.required' => 'Secret token is required'
];
}
}
这是 JSON 请求:
{
"callback_url": "https://www.gosdoddgle.com",
"tokenApi": "stringstrinngstringstring",
"supplier": [
{
"key": "sdsds1",
"number": "sdsds1"
},
{
"key": "sdsds1",
"number": "sdsds1"
}
]
}
我希望它是这样的:
{
"url": "https://www.gosdoddgle.com",
"secret_token": "stringstrinngstringstring",
"agent": [
{
"id": "sdsds1",
"quantity": "sdsds1"
},
{
"id": "sdsds1",
"quantity": "sdsds1"
}
]
}
【问题讨论】: