Arrays 将数据附加到Laravel中的响应

Arrays 将数据附加到Laravel中的响应,arrays,json,laravel,filter,response,Arrays,Json,Laravel,Filter,Response,我正在处理一个函数,它返回与两个ID相关的信息。我想在成功消息之后立即将这些ID附加到响应。这是我的密码: 对存储库中的另一个进行调用的控制器函数(工作正常) 过滤数据的资源函数(用于测试显示所有数据的im) 这是导入的集合资源 public static function collection($collection) { $subclass = get_called_class(); return self::baseResource(

我正在处理一个函数,它返回与两个ID相关的信息。我想在成功消息之后立即将这些ID附加到响应。这是我的密码:

对存储库中的另一个进行调用的控制器函数(工作正常)

过滤数据的资源函数(用于测试显示所有数据的im)

这是导入的集合资源

    public static function collection($collection)
    {
        $subclass = get_called_class();

        return self::baseResource(
            $subclass::COLLECTION_KEY,
            parent::collection($collection)
        );
    }

    public static function baseResource($key, $value)
    {
        return [
            'success' => true,
            $key => $value
        ];
    }

目前我得到了这样的回应

{
    "success": true,
    "establishments": [
        {
            /*Data of an establishment*/
        },
        {
            /*Data of an establishment*/
        },
        {
            /*Data of an establishment*/
        }
    ]
}
这就是我想要得到的回应

{
    "success": true,
    "campaign_id": /*the id passed in $campaignId*/
    "company_id": /*the id passed in $companyId*/
    "establishments": [
        {
            /*Data of an establishment*/
        },
        {
            /*Data of an establishment*/
        },
        {
            /*Data of an establishment*/
        }
    ]
}

我尝试了很多不同的方法,得到了很多不同的结构,但不是这个。有可能实现这一点吗?

您只需要在关联数组中返回它:

return [
    "success" => true,
    "campaign_id" => $campaignId,
    "company_id" => $companyId,
    "establishments" => CampaignEstablishments::collection($establishments),
];
更新:然后您需要执行以下操作:

$establishments = CampaignEstablishments::collection($establishments);
$establishments['campaign_id'] = $campaignId;
$establishments['company_id'] = $companyId;

return $establishments;

它可能会像response.data.restitutions一样返回到AJAX调用。我尝试了这个方法,但得到了重复的结果。然后我发现竞选机构已经返回了“成功”和“机构”。如果它是一个数组,你可以添加其他项目
return [
    "success" => true,
    "campaign_id" => $campaignId,
    "company_id" => $companyId,
    "establishments" => CampaignEstablishments::collection($establishments),
];
$establishments = CampaignEstablishments::collection($establishments);
$establishments['campaign_id'] = $campaignId;
$establishments['company_id'] = $companyId;

return $establishments;