Magento和取消设置自定义布尔属性
我已经为客户地址实体添加了一个属性。属性设置代码如下所示-Magento和取消设置自定义布尔属性,magento,attributes,boolean,street-address,Magento,Attributes,Boolean,Street Address,我已经为客户地址实体添加了一个属性。属性设置代码如下所示- 'entity_type_id'=>$customer_address_type_id, 'attribute_code'=>'signature_required', 'backend_type'=>'int', 'frontend_input'=>'boolean', 'frontend_label' => 'Signature required', 'is_global' => '1', 'is
'entity_type_id'=>$customer_address_type_id,
'attribute_code'=>'signature_required',
'backend_type'=>'int',
'frontend_input'=>'boolean',
'frontend_label' => 'Signature required',
'is_global' => '1',
'is_visible' => '1',
'is_required' => '0',
'is_user_defined' => '0',
那我有-
- 向model\entity\setup.php添加了属性
- 在编辑表单上添加了一个HTML字段
取消选中此项的最佳方法是什么?我应该在保存到控制器之前添加默认值0吗?还是取消设置/删除属性?我应该向模型添加get/set方法吗?最后,我在自定义模型中覆盖了setData方法 我确实发现了一些关于试图覆盖/重载(这两个术语都很常见)控制器/路由器的内容 同样值得注意的是—
'frontend_input'=>'boolean',
应该是
'frontend_input'=>'checkbox',
最后,我在自定义模型中重写了setData方法 我确实发现了一些关于试图覆盖/重载(这两个术语都很常见)控制器/路由器的内容 同样值得注意的是—
'frontend_input'=>'boolean',
应该是
'frontend_input'=>'checkbox',
今天我遇到了一个类似的问题,发现各种指南都很乏味,并通过使用“选择”而不是“复选框”来解决它,并将“源”设置为
eav/entity\u attribute\u source\u boolean
给出了一个简单的“是”/“否”下拉菜单,无需修改即可正确保存。我今天遇到了类似的问题,发现各种指南都很枯燥,并通过使用“选择”而不是“复选框”进行更改,并将“源”设置为eav/entity\u attribute\u source\u boolean
给出了简单的“是”/“否”下拉列表,无需修改即可正确保存。您是对的,问题是POST请求中没有发送未选中的复选框
您可以通过在复选框前放置一个值为“0”的隐藏表单输入来修复此问题,如下所示:
<input type='hidden' name='my_checkbox' value='0'>
<input type='checkbox' name='my_checkbox' value='1'>
现在,如果选中该复选框,它将通过值“1”发送,如果未选中,它将发送值“0”
我应该注意,这仅在PHP中是正确的,因为当发送两个相同的POST值时,需要最后一个值。不同的服务器端语言可能会以不同的方式处理此问题您是对的,问题是在POST请求中不会发送未选中的复选框 您可以通过在复选框前放置一个值为“0”的隐藏表单输入来修复此问题,如下所示:
<input type='hidden' name='my_checkbox' value='0'>
<input type='checkbox' name='my_checkbox' value='1'>
现在,如果选中该复选框,它将通过值“1”发送,如果未选中,它将发送值“0”
我应该注意,这仅在PHP中是正确的,因为当发送两个相同的POST值时,需要最后一个值。不同的服务器端语言可能会以不同的方式处理此问题这可能在旧版本的Magento中是正确的,但目前(Magento 1.8),“checkbox”不是有效的前置_输入类型,但布尔值在旧版本的Magento中可能是正确的,但当前(Magento 1.8),“checkbox”不是有效的前置_输入类型,但布尔值为