php - Livewire - 每次请求时都会增加时间
问题描述
每次我执行相同的操作请求时,运行时间都会不断增加。有什么办法可以解决吗?
在我的刀片中:
<div class="col-md-6">
<div class="form-group @error('promotion') has-error @enderror required">
<label>Promotion</label>
<select class="full-width" wire:model="promotion" wire:change="select_promotion">
<option></option>
@foreach($data_promotion as $data)
<option value="{{$data->promotion_id}}" {{$promotion==$data->promotion_id?'selected':''}}>{{$data->promotion_name}}</option>
@endforeach
</select>
<x-jet-hold wire:loading.class="visible"></x-jet-hold>
<x-jet-loading wire:loading.class="visible" wire:target="select_group"></x-jet-loading>
</div>
@error('promotion')
<label id="promotion-error" class="error" for="promotion">{{ $message }}</label>
@enderror
</div>
我的方法:
public function select_promotion()
{
$this->type_proposal_tap = 'normal';
$this->modal = 0;
$this->source_budget = 1;
$promotion = PromotionNames::select('mst_promotion.*','mst_promotion_form.form_field','mst_promotion_form.form_upload')
->where(['mst_promotion.promotion_id'=>$this->promotion])
->join('mst_promotion_form','mst_promotion_form.form_id','mst_promotion.form_id')->first();
----other code----
}
做同样的事情,即选择 select 选项并调用select_promotion()方法,livewire 时间请求不断增加,如下所示:
找了半天,发现方法调用执行异常,所以看起来同一个数据查询是这样执行的:
如何阻止它?即使我在方法 mount() 或 render() 中没有进程
解决方案
您不需要在选择元素中同时使用线指令(模型和更改)。如果您使用该属性绑定到后端,您可以获得它的生命周期挂钩,例如
<div class="col-md-6">
<div class="form-group @error('promotion') has-error @enderror required">
<label>Promotion</label>
<select class="full-width" wire:model="promotion">
<option></option>
@foreach($data_promotion as $data)
<option value="{{$data->promotion_id}}">{{$data->promotion_name}}</option>
@endforeach
</select>
//............
</div>
public function updatedPromotion($value)
{
dd($value);
$this->select_promotion();
}
如果您尝试使用更改操作,您可以执行此操作
<select class="full-width" wire:change="$emit('select_promotion', $event.target.value)">
<option></option>
//.......
protected $listeners = [
'select_promotion'
];
public function select_promotion($value)
{
$this->promotion = $value;
//..... the rest of this method
}
推荐阅读
- python - mnist CNN ValueError 预期 min_ndim=4,发现 ndim=3。收到的完整形状:[32、28、28]
- python - 使用python加密和保护文件
- c++ - 一个参数依赖于另一个参数的模板
- javascript - 带有数组的 Javascript 对象
- python - 如何修复程序中的格式错误
- sql - 一种在 SQL 中透视/堆叠表的方法
- python - 使用 python 在 Colab 上访问 .csv 文件时出现问题
- android - 克隆和运行过时的 Android 应用程序?
- json - 用 JQ 重塑 JSON
- c++ - 将 Go 与 Windows 共享库链接