Livewire - 每次请求时增加时间
Livewire - Increased time each time doing request
每次我执行相同的操作请求时,运行时间都在不断增加。有什么办法可以解决吗?
在我的 blade 中:
<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----
}
做同样的事情,即 selecting select 选项并调用 select_promotion() 方法,livewire 时间请求不断增加这 :
找了半天发现方法调用异常执行,所以看起来是这样执行同一个数据查询:
如何停止?即使我在方法 mount() 或 render()
中没有进程
您不需要在 select 元素中同时使用连线指令(模型和更改)。如果您使用 属性 绑定到后端,您可以获得它的生命周期钩子,如
<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
}
每次我执行相同的操作请求时,运行时间都在不断增加。有什么办法可以解决吗?
在我的 blade 中:
<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----
}
做同样的事情,即 selecting select 选项并调用 select_promotion() 方法,livewire 时间请求不断增加这 :
找了半天发现方法调用异常执行,所以看起来是这样执行同一个数据查询:
如何停止?即使我在方法 mount() 或 render()
中没有进程您不需要在 select 元素中同时使用连线指令(模型和更改)。如果您使用 属性 绑定到后端,您可以获得它的生命周期钩子,如
<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
}