如何使用表单助手在 prestashop 中构建单个 'flag' 复选框?
How to build a single 'flag' checkbox in prestashop with form helpers?
我无法从官方文档中弄清楚如何从标准助手构建单个复选框元素。我已经在数据库中有了相关的布尔实体,我也可以为它构建收音机或选择器,它们可以工作。
但我真正想要的是有一个复选框用作布尔标志。
有人知道怎么做吗?
好的,答案是只使用 'switch' 类型:这将在后台页面上构建一个 'slider' 开关。为了将来参考,我将报告完成同一任务的 3 种不同方法:收音机、select 和开关。
它们都已在 AdminAddressesController 上进行了测试,并绑定到名为 'expo' 的自定义数据库布尔字段。
//SELECT
$s_options = array(
array( 'expo' => 1, 'name' => 'Yes' ),
array( 'expo' => 0, 'name' => 'No' )
);
$temp_fields[] = array(
'type' => 'select',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'options' => array(
'query' => $s_options,
'id' => 'expo',
'name' => 'name'
)
);
//RADIO
$s_options = array(
array( 'id' => 'expo_on', 'value' => 1, 'label' => $this->l('Yes')),
array( 'id' => 'expo_off', 'value' => 0, 'label' => $this->l('No')),
);
$temp_fields[] = array(
'type' => 'radio',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'class' => 't',
'is_bool' => true,
'values' => $s_options
);
//SWITCH
$s_options = array(
array( 'id' => 'expo_on', 'value' => 1, 'label' => $this->l('Yes')),
array( 'id' => 'expo_off', 'value' => 0, 'label' => $this->l('No')),
);
$temp_fields[] = array(
'type' => 'switch',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'is_bool' => true,
'values' => $s_options
);
我无法从官方文档中弄清楚如何从标准助手构建单个复选框元素。我已经在数据库中有了相关的布尔实体,我也可以为它构建收音机或选择器,它们可以工作。
但我真正想要的是有一个复选框用作布尔标志。
有人知道怎么做吗?
好的,答案是只使用 'switch' 类型:这将在后台页面上构建一个 'slider' 开关。为了将来参考,我将报告完成同一任务的 3 种不同方法:收音机、select 和开关。
它们都已在 AdminAddressesController 上进行了测试,并绑定到名为 'expo' 的自定义数据库布尔字段。
//SELECT
$s_options = array(
array( 'expo' => 1, 'name' => 'Yes' ),
array( 'expo' => 0, 'name' => 'No' )
);
$temp_fields[] = array(
'type' => 'select',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'options' => array(
'query' => $s_options,
'id' => 'expo',
'name' => 'name'
)
);
//RADIO
$s_options = array(
array( 'id' => 'expo_on', 'value' => 1, 'label' => $this->l('Yes')),
array( 'id' => 'expo_off', 'value' => 0, 'label' => $this->l('No')),
);
$temp_fields[] = array(
'type' => 'radio',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'class' => 't',
'is_bool' => true,
'values' => $s_options
);
//SWITCH
$s_options = array(
array( 'id' => 'expo_on', 'value' => 1, 'label' => $this->l('Yes')),
array( 'id' => 'expo_off', 'value' => 0, 'label' => $this->l('No')),
);
$temp_fields[] = array(
'type' => 'switch',
'label' => $this->l('Is Expo'),
'name' => 'expo',
'required' => false,
'is_bool' => true,
'values' => $s_options
);