I've problem on refreshing model collection after detach on Laravel livewire. I want to remove detached item from view without refresh full page, but it seem not work. it need to refresh full page to re render the view. I have tried to $model->refresh() after detach(), and its work but $model->refresh() duplicate already loaded relationship query.
Here the route:
Route::get('/order/{order}', function (Order $order) {
$order = $order->load(['worklist.khs:id,mou_id,worklist_id,khs', 'worklist.category:id,category', 'materials']);
return view('livewire.order.index-order', ['order' => $order]);
})->name('view.order');
Livewire Component:
class ViewOrder extends Component
{
public Order $order;
public function delete($id)
{
$work = Worklist::find($id);
$this->order->worklist()->detach($work);
$this->order->refresh(); //refreshed, but relationship query duplicated
$this->tempTotal();
}
public function render()
{
return view('livewire.order.view-order', ['worklist' => $this->order->worklist]);
}
{
Screenshoot of duplicated query if use $model->refresh():

is there any workaround to refresh relationship collection without full page refresh or refresh with $model->refresh() without duplication of query?
thanks