cakeDC 搜索和复选框
cakeDC Search and checkboxes
我有一个带复选框的搜索表单。
index.ctp
...
echo $this->Form->input('active',
[
'label' => 'Select only active users',
]);
...
我想要以下行为:
- 如果
active
未选中列出所有记录(没有条件添加到查询)
- 如果
active
被检查列表仅记录 active = true
相反,由于存在隐藏字段,当未选中活动时,会将值 0 传递给组件,并且仅显示带有 active = false
的记录
如果我删除隐藏字段:
echo $this->Form->input('active',
[
'label' => 'Select only active users',
'hiddenField' => false
]);
然后 active=1
在 GET 参数中传递,并且无法再取消选中输入。
我解决了创建自己的隐藏字段而不是 cakephp 创建的隐藏字段并将其值设置为 null
$this->Form->hidden('active', ['value' => ''])
但我不喜欢这个解决方案。有什么方法可以告诉 cake 将隐藏字段的默认值设置为 null 或更改 cakeDC 搜索插件在使用复选框时的默认行为?
下面马克的评论就是解决方案
模板文件
...
echo $this->Form->input('active',
[
'label' => 'Select only active users',
]);
...
table 文件
$filterArgs = [
'active' => [
'name' => 'active',
'type' => 'value',
],
]
控制器文件
$presetVars = array(
'active' => [
'name' => 'afa',
'type' => 'value',
'emptyValue' => '0',
],
);
(老实说,我仍然不明白为什么我们必须在 table 文件和控制器中都设置参数)
我有一个带复选框的搜索表单。
index.ctp
...
echo $this->Form->input('active',
[
'label' => 'Select only active users',
]);
...
我想要以下行为:
- 如果
active
未选中列出所有记录(没有条件添加到查询) - 如果
active
被检查列表仅记录active = true
相反,由于存在隐藏字段,当未选中活动时,会将值 0 传递给组件,并且仅显示带有 active = false
的记录
如果我删除隐藏字段:
echo $this->Form->input('active',
[
'label' => 'Select only active users',
'hiddenField' => false
]);
然后 active=1
在 GET 参数中传递,并且无法再取消选中输入。
我解决了创建自己的隐藏字段而不是 cakephp 创建的隐藏字段并将其值设置为 null
$this->Form->hidden('active', ['value' => ''])
但我不喜欢这个解决方案。有什么方法可以告诉 cake 将隐藏字段的默认值设置为 null 或更改 cakeDC 搜索插件在使用复选框时的默认行为?
下面马克的评论就是解决方案
模板文件
...
echo $this->Form->input('active',
[
'label' => 'Select only active users',
]);
...
table 文件
$filterArgs = [
'active' => [
'name' => 'active',
'type' => 'value',
],
]
控制器文件
$presetVars = array(
'active' => [
'name' => 'afa',
'type' => 'value',
'emptyValue' => '0',
],
);
(老实说,我仍然不明白为什么我们必须在 table 文件和控制器中都设置参数)