Magento и снятие индивидуального логического атрибута

StackOverflow https://stackoverflow.com/questions/1871826

Вопрос

Я добавил атрибут к объекту адреса клиента. Код настройки атрибутов следующим образом-

'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',

У меня тогда -

  • Добавлен атрибут в модель entity setup.php
  • Добавлено поле HTML в форме редактирования

Сейчас я сохранен атрибут в базе данных при проверке флажести. Тем не менее, это не является нерешенным, когда флажок не контролирована (я предполагаю, что из-за ввода флажки не является «post» ed, если не контролировано.

Как лучше всего снять это? Должен ли я добавить значение по умолчанию 0? Или не вытекать/удалить атрибут перед сохранением в контроллере? Стоит ли добавить методы Get/Set в модель?

Это было полезно?

Решение 2

В конце концов, я перевернул метод SetData в моей пользовательской модели.

Я нашел немного Хорошие ресурсы При попытке переопределить/перегружать (оба термина являются общими) контроллеры/маршрутизаторы.

Также следует отметить -

'frontend_input'=>'boolean',

должно быть

'frontend_input'=>'checkbox',

Другие советы

У меня была похожая проблема сегодня, я обнаружил, что различные руководства утомительны и обошли ее, изменяя «SELECT» вместо «флажки» и установив «источник» на eav/entity_attribute_source_boolean что дает простое раскрытие «да»/«нет» и правильно сохраняет без модификации.

Вы правы, проблема в том, что неконтролируемые флажки не отправляются по запросу.

Вы можете исправить это, поместив ввод скрытой формы со значением «0» до того, как ваш флажок

<input type='hidden' name='my_checkbox' value='0'>
<input type='checkbox' name='my_checkbox' value='1'>

Теперь, если флажок проверен, он отправит значение «1», если он не контролируется, он отправит значение «0».

Я должен отметить, что это верно только в PHP, потому что когда отправляются два идентичных значения POST, он занимает последнее. Различные языки на стороне сервера могут справиться с этим по -разному

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top