phplaravellaravel-6

setAttribute for existing object Laravel


I have some data that I want to return, and to those data I want to add another array (array with info that I get from storage). What I need, is to add that array to existing response.

Method Illuminate\Http\JsonResponse::setAttribute does not exist."

$contractFile =[];
     array_push($contractFile,
     [
      'contract_id' => $contract_id,
      'order_no' => $order_no,
      'file_name' => $file_name,
     ]);

    $response = response()->json($contract->load('dates', 'customer', 'years', 'terminationDetails','renewals'));
    'terminationDetails','renewals'));
    $response->setAttribute('contractFile', $contractFile);
    return $response;

Solution

  • I found the solution. I removed all about $response variable and I returned this: This way I attach that array to my existing json response.

    return response()->json($contract->load('dates', 'customer', 'years', 'terminationDetails','renewals')->setAttribute('contractFile', $contractFile));