将数据附加到 Laravel 中的响应
Attach data to Response in Laravel
我正在研究 returns 与两个 ID 相关的信息的功能。我想在成功消息后立即将这些 ID 附加到响应中。这是我的代码:
调用存储库中另一个函数的控制器函数(工作正常)
public function getCampaignEstablishments($lang, $campaignId, $companyId)
{
$establishments = $this->repository->allEstablishments($campaignId, $companyId);
return CampaignEstablishments::collection($establishments);
}
过滤数据的资源函数(用于测试显示所有数据)
class CampaignEstablishments extends PotatoesResource
{
const SINGLE_KEY = 'establishment';
const COLLECTION_KEY = 'establishments';
public function toArray($request)
{
return parent::toArray($request);
}
}
这是导入的集合资源
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它在一个关联数组中:
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;
我正在研究 returns 与两个 ID 相关的信息的功能。我想在成功消息后立即将这些 ID 附加到响应中。这是我的代码:
调用存储库中另一个函数的控制器函数(工作正常)
public function getCampaignEstablishments($lang, $campaignId, $companyId)
{
$establishments = $this->repository->allEstablishments($campaignId, $companyId);
return CampaignEstablishments::collection($establishments);
}
过滤数据的资源函数(用于测试显示所有数据)
class CampaignEstablishments extends PotatoesResource
{
const SINGLE_KEY = 'establishment';
const COLLECTION_KEY = 'establishments';
public function toArray($request)
{
return parent::toArray($request);
}
}
这是导入的集合资源
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它在一个关联数组中:
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;