0
관련 항목으로 가득 찬 테이블을 인보이스에 대량 업데이트하려고합니다.FuelPHP ORM 일괄 업데이트 관련 개체
$_POST Existing relations intended result
=====================================================
item_id: 3 unlink 3
item_id: 4 item_id: 4 update 4
item_id: 5 item_id: 5 update 5
item_id: null create x
item_id: null create x
은 내가 $_properties
Model
예상하는 모두를 가지고있는 개체 JSON 배열을 밀어하고있다.
내 컨트롤러 방법은 다음과 같습니다 : 관련 객체 (invoice_items)를 저장할 때
public function update_items($invoice_id)
{
$invoice = Model_Invoice::find($invoice_id);
if ($items = MyInput::json())
{
$invoice->from_array(array('invoice_items' => $items));
}
$invoice->save();
}
이는 PK 충돌 오류가 있습니다. $invoice->invoice_items
에서 업데이트 된 개체가 모두 is_new() == true
이기 때문입니다.
이 코드를 어떻게 구성해야합니까? 들어오는 모든 관련 항목에 대해 상태 추가/편집/삭제를 관리하고 싶지 않습니다. 이 업데이트를 만약
이는 POST의 일부가 아닌 레코드를 삭제하지 않습니다. 이것은 POST의 항목을 제외하고 전체 데이터 세트를 대량으로 대체하려고하므로 기존의 객체에서 업데이트해야하는 문제의 일부입니다. – willoller
필자는 현재 "수동으로"수동으로 수행하고 있습니다. - 매치, 업데이트 수행, 일치하지 않는 레코드 삭제 및 들어오는 레코드를 삽입하는 다른 루프를 반복합니다. 그냥 작동 해야하는 것 같습니다 :) :) – willoller
저장되는 내용과 게시되는 내용 사이에 차이점을 만들어야합니다. 관련된 모든 항목 객체가있는 송장 오브젝트를 가져오고, 루프를 반복하고, 게시물에없는 항목을 삭제/설정 해제 한 다음 게시물을 반복하여 업데이트/작성하십시오. – WanWizard