我正在使用laravel 10.我需要将数据添加到此 struct 中:

$json = [
    "groupCode" => $groupCode,
    "title" => "Solicitud de Firma",
    "description" => "Solicitud de Firma - Descripción",
    "customization" => [
        "requestMailSubject" => "Mi Email Subject",
        "requestMailBody" => "Mi Email Body",
        "requestSmsBody" => "SMS Body"
    ],
    "recipients" => [
        [
            "key" => "firmante01",
            "presential" => true
        ]
    ],
    "messages" => [
        [
            "document" => [
                "templateType" => "base64",
                "templateCode" => $templateCode, //"564FDSA4765",
                "templateReference" => $pdfInBase64,
                "autoFinalize" => true,
                "formRequired" => true,
                //"items" => $items,
            ],
            "policies"  => [
                "attachments" => [], // it´s filled below
            ],
            "metadataList" => $metaDataList,
            "callbackURL" => "",
            "callbackAuthorization" => "Basic " . "viafirmaapi" . ":" . "f1rm4v1420$",
            "callbackMails" => "",
            "callbackMailFilename" => "PRECONTRATO_" . $precontract["insert_id"]["precontract_id"] . ".pdf"
        ],
    ],
];

在此数组中,我需要将数据动态添加到:

"policies"  => [
    "attachments" => [], // it's filled below
],

为了做到这一点,我正在努力:

$precontractDocument = PrecontractAttachment::where('precontract_id', $precontract["insert_id"]["precontract_id"])->get();
$attachments = [];
$document = [];
$tokens = [];
for ($i = 0; $i < count($precontractDocument); $i++) {
    array_push($tokens, $this->getSecurityTokensViaFirma());
    $attachments["type"] = "PDF";
    $attachments["helpText"] = "Documento adjunto";
    $attachments["fileReference"] = $tokens[$i];
    $attachments["fileName"] = $precontractDocument[$i]["filename_result"];
    $attachments["readOnly"] = true;
    array_push($document, $attachments);
    $this->uploadDocumentViafirma($document, $tokens, $precontract["insert_id"]["precontract_id"]);
}
// add items document into metadatalist
$json["messages"]["policies"]["attachments"] = $document;

这段代码只添加了一个文档,但我需要将数据子数组添加到任何文档.

我目前正在做的是:

// add items document into metadatalist
array_push($json["messages"]["policies"]["attachments"], $document);

但这将返回local.ERROR: array_push(): Argument #1 ($array) must be of type array, null given

我不知道我可以做些什么来将数据添加到:

"messages" => [
    [
        "policies"  => [
            "attachments" => [], // it´s filled below
        ],
    ]
]

推荐答案

尝尝这个

array_push($json["messages"][0]["policies"]["attachments"], $document);

或使用以下内容更新$json数组:

        $json = [
            "groupCode" => $groupCode,
            "title" => "Solicitud de Firma",
            "description" => "Solicitud de Firma - Descripción",
            "customization" => [
                "requestMailSubject" => "Mi Email Subject",
                "requestMailBody" => "Mi Email Body",
                "requestSmsBody" => "SMS Body"
            ],
            "recipients" => [
                [
                    "key" => "firmante01",
                    "presential" => true
                ]
            ],
            "messages" => [
                "document" => [
                    "templateType" => "base64",
                    "templateCode" => $templateCode, //"564FDSA4765",
                    "templateReference" => $pdfInBase64,
                    "autoFinalize" => true,
                    "formRequired" => true,
                    //"items" => $items,
                ],
                "policies"  => [
                    "attachments" => [], // it´s filled below
                ],
                "metadataList" => $metaDataList,
                "callbackURL" => "",
                "callbackAuthorization" => "Basic " . "viafirmaapi" . ":" . "f1rm4v1420$",
                "callbackMails" => "",
                "callbackMailFilename" => "PRECONTRATO_" . $precontract["insert_id"]["precontract_id"] . ".pdf"
            ],
        ];

Php相关问答推荐

基于验证动态更改输入字段类(名称密码)&

PHP Array to Powershell exec命令Args

在php中有没有办法比较两个包含相同枚举类型的枚举数组

如何修复条带元素中的错误&&客户端_机密&

使用正则表达式搜索两个子字符串(没有重叠/共享字符)

在Laravel中从动态嵌套数组中获取值

在WooCommerce购物车页面应用优惠券不会';t刷新总计

如何解决 Laravel 外键错误?

Woocommerce API - 图像问题

我不明白为什么我收到未定义的数组键异常错误 - Laravel 9 PHP 8

将 WooCommerce 0 销售价格替换为自定义文本,并保留常规价格删除线

使用 Laravel 和 Vue 进行图像表单验证

提交仅包含活动详细信息选项卡表单的主表单

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮

用于检测此模式的正则表达式:something;something=something,something=something... 未知次数

php var_dump(1) 返回字符串(4)

我需要获取传递到这个数组中的数据,但我没有得到它,因为在 Laravel 中数组是这样出现的

来自命令行的 PHP 没有给出正确的结果

Laravel 从嵌套数组的第二级获取最后一项

fopen 功能不断向我发送我重新加载网页时已发布的重复版本的表单