cakeDC Поиск и флажки

У меня есть форма поиска с флажком.

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 по умолчанию при работе с флажками?

0

Решение

следующий комментарий марки вот решение

файл шаблона

...
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',
],
);

(честно говоря, я до сих пор не понимаю, почему мы должны устанавливать параметры как в файле таблицы, так и в контроллере)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]