【发布时间】:2021-03-01 19:45:08
【问题描述】:
我想在我的桌子上添加过滤器。我的过滤器是帐户的安全级别。 这是我的 HTML
<input type="checkbox" value="O" wire:model="level" id="O">
<label for="O">O</label>
<input type="checkbox" value="a" wire:model="level" id="a">
<label for="a">A</label>
<input type="checkbox" value="b" wire:model="level" id="b">
<label for="b">B</label>
<input type="checkbox" value="c" wire:model="level" id="c">
<label for="c">C</label>
还有我的 Livewire 组件:
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\User;
class Compliance extends Component
{
public $level = [];
public function render()
{
return view('livewire.compliance', [
'customers' => $this->row
]);
}
public function getRowsQueryProperty()
{
$query = User::query()
->when($this->level, fn($query, $levels) => $query->level($levels));
return $query;
}
public function getRowsProperty()
{
return $this->rowsQuery->paginate(20);
}
}
我的问题是: $this->level 总是只有一个值,而不是像数组这样的值
[
0 => 'O',
1 => 'a'
]
我希望每次选中或取消选中复选框时都选中所有复选框。 感谢阅读
【问题讨论】:
-
在livewire中你可以做点符号吗?所以不做 level.0, level.1 ... 就够了吗?
-
在 HTML 中?我已经尝试在wire:model中使用level.a level.b,但总是同样的问题,在渲染中我有一个数组,其中0 =>'a'或0 =>'b'但从来没有2值同一个数组
标签: php laravel laravel-livewire