[英]pass varible in collection resource laravel api
i have this function我有这个 function
public function activityAutoDeposit(GoalRequest $request)
{
$goal = Goal::find($request->input('goal_id'));
if($goal->user_id != auth()->id()) {
return $this->responseData([], 'forbidden card', true);
}
$schedule_deposit = DB::table('rules')
->join('cards', 'rules.card_id', '=', 'cards.id')
->join('rules_schedule_deposits', 'rules.id', '=', 'rules_schedule_deposits.rule_id')
->select('rules_schedule_deposits.*')
->where('table', '=', 'rules_schedule_deposits')
->where('cards.user_id', '=', auth()->id())
->get();
return $this->responseData(AutoDepositResource::collection($schedule_deposit ,$goal->distribution->percentage ));
}
i want to pass the varible $goal->distribution->percentage
to the resource collection.. i wrote in AutoDepositResource class this constructor我想将变量
$goal->distribution->percentage
传递给资源集合。我在 AutoDepositResource class 中写了这个构造函数
public $att;
public function __construct($resource , $att)
{
#parent::__construct($resource);
$this->resource = $resource;
$this->att = $att;
}
but the value i get 0, 1,2 +++.. i did not recive the correct value但是我得到的值是 0, 1,2 +++.. 我没有收到正确的值
JsonResource does not support multiple parameters. JsonResource 不支持多个参数。 Use single resource parameter.
使用单一资源参数。
public function activityAutoDeposit(GoalRequest $request)
{
$resource = (object) [
'schedule_deposit' => $schedule_deposit,
'goal_distribution_percentage' => $goal->distribution->percentage,
];
return $this->responseData(
AutoDepositResource::collection($resource)
);
}
class AutoDepositResource extends JsonResource
{
public function toArray($request)
{
return [
'schedule_deposit' => $this->schedule_deposit,
'goal_distribution_percentage' => $this->goal_distribution_percentage,
];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.