你好。
我目前在使用AWS Route-53 API时遇到问题。要创建记录,您需要调用一个函数,该函数本身需要一组输入。
我想在这里创建一个记录集,为此我有一些POST值。其中之一$_POST['record_value']
是一个textarea,有多行。我循环通过它们。这是为一条记录启用多个值。当您将其硬编码为ResourceRecords
;
$result = $this->route53->changeResourceRecordSets([
'ChangeBatch' => [
'Changes' => [
[
'Action' => 'CREATE',
'ResourceRecordSet' => [
'Name' => $recordName,
'ResourceRecords' => [
[
'Value' => $recordValue
],
],
'TTL' => $recordTtl,
'Type' => $recordType,
],
],
],
'Comment' => 'Routing Record Set',
],
'HostedZoneId' => $this->zone,
]);
豪尔。我想动态制作ResourceRecords
。对于textarea中的每一行,我需要一组新的代码部分;
[
'Value' => $recordValue
],
我认为如下;
$newData = [];
foreach(explode("\r\n", $recordValue) as $valLine) {
$newData[] = ["Value" => $valLine];
}
$result = $this->route53->changeResourceRecordSets([
'ChangeBatch' => [
'Changes' => [
[
'Action' => 'CREATE',
'ResourceRecordSet' => [
'Name' => $recordName,
'ResourceRecords' => [
$newData
],
'TTL' => $recordTtl,
'Type' => $recordType,
],
],
],
'Comment' => 'Routing Record Set',
],
'HostedZoneId' => $this->zone,
]);
然而,这似乎返回了一个例外:Found 1 error while validating the input provided for the ChangeResourceRecordSets operation:↵[ChangeBatch][Changes][0][ResourceRecordSet][ResourceRecords][0] must be an associative array. Found array(1).
我是否构建了错误的数组,或者我是否完全错误地使用了这个数组?
答案 0 :(得分:2)
$newData
已经是一个数组,你不需要将它包装在另一个数组中。
'ResourceRecords' => $newData,