【发布时间】:2022-11-07 04:24:13
【问题描述】:
在 Laravel livewire 上分离后,我在刷新模型集合时遇到了问题。我想在不刷新整个页面的情况下从视图中删除分离的项目,但它似乎不起作用。它需要刷新整个页面才能重新呈现视图。我在detach() 之后尝试了$model->refresh(),它的工作但是$model->refresh() 重复已经加载的关系查询。
这里的路线:
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');
活线组件:
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]);
}
{
使用$model->refresh()时重复查询的截图:
是否有任何解决方法来刷新关系集合而不刷新整页或使用$model->refresh() 刷新而不重复查询?
谢谢
【问题讨论】:
标签: php laravel laravel-livewire