배열의 값을 laravel의 개체 항목으로 푸시하는 방법

Farshad

다음과 같이 반환 할 개체가 있습니다. (dd 결과)

Collection {#1421 ▼
  #items: array:2 [▼
    3943 => Collection {#1419 ▼
      #items: array:2 [▼
        0 => RoomPricingHistory {#923 ▼
          #fillable: array:19 [▶]
          #connection: "mysql"
          #table: "room_pricing_histories"
          #primaryKey: "id"
          #keyType: "int"
          +incrementing: true
          #with: []
          #withCount: []
          #perPage: 15
          +exists: true
          +wasRecentlyCreated: false
          #attributes: array:26 [▶]
          #original: array:26 [▼
            "id" => 4132
            "accommodation_room_id" => 3943
            "net_price" => null
            "board_price" => null
            "foreign_board_price" => null
            "sales_price" => 4200000
            "extra_bed_price" => null
            "half_charge_price" => null
            "half_board_price" => null
            "full_board_price" => null
            "foreign_net_price" => null
            "foreign_sales_price" => null
            "foreign_extra_bed_price" => null
            "foreign_half_charge_price" => null
            "foreign_half_board_price" => null
            "foreign_full_board_price" => null
            "operator_id" => 11
            "commission_percent" => null
            "foreign_commission_percent" => null
            "discount_percent" => 10.0
            "foreign_discount_percent" => null
            "from_date" => "2019-05-25 00:00:00"
            "to_date" => "2029-08-30 23:59:59"
            "is_deleted" => 0
            "created_at" => "2019-05-25 13:30:00"
            "updated_at" => "2019-05-25 13:30:00"
          ]
          #changes: []
          #casts: []
          #dates: []
          #dateFormat: null
          #appends: []
          #dispatchesEvents: []
          #observables: []
          #relations: array:1 [▶]
          #touches: []
          +timestamps: true
          #hidden: []
          #visible: []
          #guarded: array:1 [▶]
          #enableLoggingModelsEvents: true
          #oldAttributes: []
        }
        1 => RoomPricingHistory {#1042 ▶}
      ]
    }
    3944 => Collection {#1420 ▶}
  ]
}

그리고 아래와 같은 매핑 된 데이터가 있습니다.

Collection {#1422 ▼
  #items: array:2 [▼
    3943 => 8400000
    3944 => 400
  ]
}

이제 내가하고 싶은 것은 그들이 가지고있는 id에 따른 가격의 합계 인 매핑 된 데이터를 반환하는 것이므로 각 항목의 결과는 아래와 같이 가격의 합계를 갖습니다.

{
//room pricing history
 id:4132
room_id:3943
sum_of_prices :8400000
},
{
//room pricing history
 id:4133
room_id:3944
sum_of_prices :600
}

참고 : 나는 현재 자원을 사용하고 있지만 예를 들어 동일한 ID 또는 무언가가있는이 조건으로 자신의 개체에 데이터를 푸시하는 방법을 모릅니다.

업데이트 :

내 방법은 다음과 같습니다.

  $from_date = $request->get('from_date');
        $to_date = $request->get('to_date');
        $acc_id = $request->get('acc_id');
        $room_price = [];
        $period = CarbonPeriod::create($from_date, $to_date);
        $dates = $period->toArray();
        $room_ids = AccommodationRoom::where('accommodation_id',$acc_id)->pluck('id')->toArray();
        for ($f = 0; $f < count($room_ids); $f++) {
            for ($i = 0; $i < count($dates); $i++) {


                /****************************************
                 * Looping for the Number of Rooms User Given
                 *****************************************/
                $room_price[] = RoomPricingHistory::with('accommodationRoom', 'accommodationRoom.roomCapacityHistoryLast')
                    ->where('accommodation_room_id', $room_ids[$f])
                    ->whereDate('from_date', '<=', $dates[$i])
                    ->whereDate('to_date', '>=', $dates[$i])
                    ->get()->sortByDesc('created_at')
                    ->take(1);
            }
        }
        $room = collect($room_price);
        $room_collection= $room->flatten();
        $sums = $detailed->mapWithKeys(function ($group, $key) {
            return [$key => $group->sum('sales_price')];
        });
        return RoomDetailResource::collection($room_collection);

랙 박스

그룹의 합계를 구하는 방법을 알아 낸 이전 질문을 기반으로 확장하여 원하는 추가 데이터를 포함하고 map대신 사용할 수 있습니다 .

$new = $detailed->map(function ($group, $key) {
    return (object) [
        'id' => $group->first()->id,
        'room_id' => $key,
        'sum_of_prices' => $group->sum('sales_price'),
    ];
})->values();

values마지막에 호출을 던져 키를 재설정하여 JSON 출력이 객체가 아닌 배열이되고 예제 출력이 키를 사용하지 않는 것 같습니다. 이러한 객체를 'room_id'로 입력하려면을 호출하지 마십시오 values.

당신이 가진 API 리소스가 특정 데이터를 기대하고 있기 때문에 실제로 무엇을 하려는지 잘 모르겠습니다. 임의의 데이터를 Eloquent 컬렉션에 혼합하려는 것 같습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배열 내의 개체 내의 배열로 항목을 푸시하는 방법

분류에서Dev

2 개의 항목을 배열에 푸시하는 방법

분류에서Dev

개체 내부의 배열에 값을 푸시하는 방법

분류에서Dev

객체의 값을 합하고 배열로 푸시하는 방법

분류에서Dev

listObjects의 값을 배열로 푸시하는 방법

분류에서Dev

속성 개체의 값을 배열로 바꾸는 방법 (Powershell)

분류에서Dev

배열을 angularjs의 다른 배열로 푸시하는 방법

분류에서Dev

두 개의 다른 값으로 객체 배열을 정렬하는 방법

분류에서Dev

Linq 목록 내부의 개체 배열을 결합하고 값으로 그룹화하는 방법

분류에서Dev

useState를 사용하여 항목을 배열의 객체 배열로 푸시하는 방법은 무엇입니까?

분류에서Dev

개체 목록의 배열을 단일 배열로 병합하는 방법

분류에서Dev

키 값의 개체를 개체의 배열로 변환하는 방법

분류에서Dev

객체 배열을 키 값 쌍으로 배열에 푸시하는 방법

분류에서Dev

개체 배열 내의 개체 배열에 항목을 지정하는 방법은 무엇입니까?

분류에서Dev

angularjs 값을 배열의 특정 위치로 푸시하는 방법

분류에서Dev

angular.js의 배열로 푸시 된 json 값을 구조화하는 방법

분류에서Dev

배열의 형식을 laravel의 각 항목으로 컬렉션으로 변경하는 방법

분류에서Dev

개체 배열에서 개별 개체의 값을 추출하는 방법

분류에서Dev

JavaScript의 입력 필드 번호 값을 기반으로 문자열을 배열에 푸시하는 방법

분류에서Dev

객체로 푸시하는 객체 배열에 다른 객체 배열의 특정 키 값이 있는지 확인하는 방법

분류에서Dev

배열의 값을 객체의 값으로 푸시

분류에서Dev

html 버튼 (입력 태그)을 json 배열의 json 객체로 푸시하는 방법

분류에서Dev

Angularjs-bool 값을 기반으로 항목을 배열로 푸시하는 방법

분류에서Dev

가격 항목을 오름차순으로 기준으로 배열 또는 클래스의 처음 4 개 항목을 가져 오는 방법

분류에서Dev

속성 값으로 배열의 개체에 템플릿을 바인딩하는 방법은 무엇입니까?

분류에서Dev

중첩 된 배열 및 개체 구조의 최하위 항목을 효율적으로 필터링하는 동시에 이러한 항목에 대한 경로 정보를 유지하는 방법은 무엇입니까?

분류에서Dev

파이썬 : 다음 항목 값으로 목록의 튜플을 체인하는 방법

분류에서Dev

PHP에서 항목을 배열로 푸시하는 방법

분류에서Dev

AngualRJ의 배열에서 배열 개체 항목을 삭제할 때 배열 개체 인덱스를 업데이트하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    배열 내의 개체 내의 배열로 항목을 푸시하는 방법

  2. 2

    2 개의 항목을 배열에 푸시하는 방법

  3. 3

    개체 내부의 배열에 값을 푸시하는 방법

  4. 4

    객체의 값을 합하고 배열로 푸시하는 방법

  5. 5

    listObjects의 값을 배열로 푸시하는 방법

  6. 6

    속성 개체의 값을 배열로 바꾸는 방법 (Powershell)

  7. 7

    배열을 angularjs의 다른 배열로 푸시하는 방법

  8. 8

    두 개의 다른 값으로 객체 배열을 정렬하는 방법

  9. 9

    Linq 목록 내부의 개체 배열을 결합하고 값으로 그룹화하는 방법

  10. 10

    useState를 사용하여 항목을 배열의 객체 배열로 푸시하는 방법은 무엇입니까?

  11. 11

    개체 목록의 배열을 단일 배열로 병합하는 방법

  12. 12

    키 값의 개체를 개체의 배열로 변환하는 방법

  13. 13

    객체 배열을 키 값 쌍으로 배열에 푸시하는 방법

  14. 14

    개체 배열 내의 개체 배열에 항목을 지정하는 방법은 무엇입니까?

  15. 15

    angularjs 값을 배열의 특정 위치로 푸시하는 방법

  16. 16

    angular.js의 배열로 푸시 된 json 값을 구조화하는 방법

  17. 17

    배열의 형식을 laravel의 각 항목으로 컬렉션으로 변경하는 방법

  18. 18

    개체 배열에서 개별 개체의 값을 추출하는 방법

  19. 19

    JavaScript의 입력 필드 번호 값을 기반으로 문자열을 배열에 푸시하는 방법

  20. 20

    객체로 푸시하는 객체 배열에 다른 객체 배열의 특정 키 값이 있는지 확인하는 방법

  21. 21

    배열의 값을 객체의 값으로 푸시

  22. 22

    html 버튼 (입력 태그)을 json 배열의 json 객체로 푸시하는 방법

  23. 23

    Angularjs-bool 값을 기반으로 항목을 배열로 푸시하는 방법

  24. 24

    가격 항목을 오름차순으로 기준으로 배열 또는 클래스의 처음 4 개 항목을 가져 오는 방법

  25. 25

    속성 값으로 배열의 개체에 템플릿을 바인딩하는 방법은 무엇입니까?

  26. 26

    중첩 된 배열 및 개체 구조의 최하위 항목을 효율적으로 필터링하는 동시에 이러한 항목에 대한 경로 정보를 유지하는 방법은 무엇입니까?

  27. 27

    파이썬 : 다음 항목 값으로 목록의 튜플을 체인하는 방법

  28. 28

    PHP에서 항목을 배열로 푸시하는 방법

  29. 29

    AngualRJ의 배열에서 배열 개체 항목을 삭제할 때 배열 개체 인덱스를 업데이트하는 방법은 무엇입니까?

뜨겁다태그

보관