У меня есть форма поиска с флажком.
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, и невозможно больше снять ввод.
Я решил создать свое собственное скрытое поле вместо того, которое было создано тортом, и установить его значение равным нулю.
$this->Form->hidden('active', ['value' => ''])
но мне не нравится это решение. Есть ли какой-нибудь способ сказать торт, поэтому установите значение по умолчанию для скрытого поля в null или измените поведение плагина поисковой системы cakeDC по умолчанию при работе с флажками?
следующий комментарий марки вот решение
файл шаблона
...
echo $this->Form->input('active',
[
'label' => 'Select only active users',
]);
...
файл таблицы
$filterArgs = [
'active' => [
'name' => 'active',
'type' => 'value',
],
]
файл контроллера
$presetVars = array(
'active' => [
'name' => 'afa',
'type' => 'value',
'emptyValue' => '0',
],
);
(честно говоря, я до сих пор не понимаю, почему мы должны устанавливать параметры как в файле таблицы, так и в контроллере)
Других решений пока нет …