Привет.
В настоящее время у меня проблема с AWS Route-53 API. Для создания записи вам нужно вызвать функцию, которая сама нуждается в массиве входных данных.
Я хочу создать набор записей здесь, и для этого у меня есть некоторые значения POST. Один из них, $_POST['record_value']
, является текстовой и имеет несколько строк. Я перебираю их. Это позволяет включить несколько значений для одной записи. Код выглядит следующим образом, когда вы жестко закодируете его как одно значение в 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
динамически. Для каждой строки в текстовой области мне нужен новый набор следующей части кода;
[
'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).
Я неправильно строю массив или я делаю это неправильно вообще?
$newData
это уже массив, вам не нужно оборачивать его в другой массив.
'ResourceRecords' => $newData,
Других решений пока нет …