laravel - 防止文本框在 Laravel Livewire 页面加载时发送请求
问题描述
我想在我的页面加载时阻止 Livewire 发送请求。我正在使用 Livewire 进行搜索操作。
看法
<div class="col-md-4 my-3">
<input wire:model.debounce.500ms="search"
type="text"
placeholder="Search Permissions...."
class="form-control">
</div>
零件
class ViewPermisson extends Component
{
use WithPagination;
public $search;
protected $queryString = ['search'];
protected $listeners = ['refreshPermissions' => '$refresh'];
public function updatingSearch()
{
$this->resetPage();
}
public function render()
{
$permissions = Permission::where('guard_name', 'admin')
->where('name', 'like', '%' . $this->search . '%')
->simplePaginate(10);
return view('livewire.admin.access.view-permisson',
['permissions' => $permissions]);
}
}
问题是当我加载页面时,Livewire 输入会发送带有空查询字符串的请求。我想在页面加载时阻止这个请求。
127.0.0.1:8000/admin/permissions?
这是一个在我请求页面时添加了空查询字符串的 URL。
解决方案
问题在于,当您最初呈现页面时,它会通过权限查询返回。您应该在搜索字段已更新时查询权限。
public $permissions;
public function updatedSearch()
{
if($this->search == '') return;
$this->permissions = Permission::where('guard_name','admin')->where('name', 'like', '%'.$this->search.'%')->simplePaginate(10);
}
public function render()
{
return view('livewire.admin.access.view-permisson');
}
或者您只是通过检查搜索变量是否为空来绕过查询。喜欢:
public function mount(){
$this->search = '';
}
public function render()
{
if($this->search != ''){
$permissions = Permission::where('guard_name','admin')->where('name', 'like', '%'.$this->search.'%')->simplePaginate(10);
return view('livewire.admin.access.view-permisson',['permissions'=>$permissions]);
}else{
return view('livewire.admin.access.view-permisson',['permissions'=>null]);
}
}
推荐阅读
- spring - 使用流的 JSON 响应对象
- python - 列表索引超出范围:len(list) 在几次迭代后不更新
- vba - 微软展望
- python - 减去二维数组中每一行的第一个元素
- wifi - 互联网接入 什么是最好的,将 4G USB sim 卡加密狗插入路由器或使用带有内置 sim 卡 4G 支架的路由器
- apache-spark - 如何使用窗口而不是 Pyspark groupBy 进行聚合
- r - 如何使用 purrr 中的 cross 和 pmap 对多个模型执行 k 折交叉验证?
- c++ - 如何从 C++ 中的文本文件中逐行读取整数?
- r - R - 可互换地制作两列的唯一列表
- android - 分隔项不允许我的代码运行