0
나는 Laravel 5.5
을 사용하고 있습니다. 아래의 데이터를 반환하는 쿼리가 있습니다 (원시 쿼리는 웅변이 아닙니다).쿼리 결과를 반복하고 새 개체를 생성하는 방법
주문 번호는 여러 개체 (예 : 164377
)에서 동일 할 수 있습니다. 내가 수행해야하는 작업은 모든 결과를 반복하고 각 ordernumber
에 대해 여러 개의 객체를 갖는 대신 각 주문 번호 (즉, 164377
)에 대한 객체를 만드는 것입니다.
나는 각 순서를 확인해야하고, 주문 번호가 동일한 경우 나는 몇 가지 속성을 조작 할 필요가 내가 조회 한 후이 만 수행 할 수 있기 때문에이 group by
할 수 없습니다
데이터가 반환
모든 서버로부터의 응답JSON
{
"ordernumber": 164377,
"deliverydate": "2017-11-28 00:00:00",
"suLN": "60",
"osLN": "1.4",
"osStatus": 100,
"VerifiedOn": null
},
{
"ordernumber": 164377,
"deliverydate": "2017-11-28 00:00:00",
"suLN": "76",
"osLN": "1.4",
"osStatus": 100,
"VerifiedOn": null
},
{
"ordernumber": 164377,
"deliverydate": "2017-11-28 00:00:00",
"suLN": "61",
"osLN": "1.4",
"osStatus": 100,
"VerifiedOn": null
},
{
"ordernumber": 163868,
"deliverydate": "2017-11-08 00:00:00",
"suLN": "94",
"osLN": "3.8",
"osStatus": 1300,
"VerifiedOn": "2017-11-15 06:54:46"
},
제어기
$data = DB
::connection('s2')
->select
("
SELECT
`wo`.`ordernumber`, `wo`.`deliverydate`,
`su`.`ListNumber` as suLN, `os`.`ListNumber` as osLN, `su`.`LineNumber` as suLN, `os`.`LineNumber` as osLN, `os`.`status` as osStatus,
`su`.`VerifiedOn`
FROM
`wo`.`orders` AS `wo`
INNER JOIN
`pr`.`su` AS `su`
ON `wo`.`ordernumber` = `su`.`ordernumber`
INNER JOIN
`pr`.`orderstatus` AS `os`
ON `su`.`FrameNumber` = `os`.`boxnumber`
AND `wo`.`ordernumber` = `os`.`ordernumber`
WHERE
`wo`.`pID` = ?
",
[$pID]
);
foreach ($data as $d) {
// check if object exists or create new object for each $d->ordernumber
// if object exists check if $d->LineNumber matches
// if LineNumber matches
$d->counter = $d->counter + 1; // new property created
}
return response()->json(['data' => $data], 200);