【问题标题】:pass varible in collection resource laravel api在集合资源 laravel api 中传递变量
【发布时间】:2021-08-19 06:13:33
【问题描述】:

我有这个功能

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 ));
}

我想将变量 $goal->distribution->percentage 传递给资源集合。我在 AutoDepositResource 类中写了这个构造函数

public $att;

public function __construct($resource , $att)
{
    #parent::__construct($resource);
    $this->resource = $resource;
    $this->att = $att;
}

但是我得到的值是 0 , 1 ,2 +++ .. 我没有得到正确的值

【问题讨论】:

    标签: php laravel api resources


    【解决方案1】:

    JsonResource 不支持多参数。使用单一资源参数。

    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,
            ];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 2013-07-15
      • 2022-07-26
      • 2018-06-14
      • 2020-06-13
      • 1970-01-01
      • 2020-05-09
      • 2019-08-25
      • 2017-12-17
      相关资源
      最近更新 更多