Пользовательские атрибуты клиента не сохраняются в базе данных Magento? - PullRequest
1 голос
/ 07 декабря 2011

Я перепробовал каждый учебник в Интернете, задал вопросы здесь и получил несколько хороших ответов, которые я принял и выполнил.Я создал модули, изменил основные файлы, установил различные версии magento, но не имеет значения, что я делаю, я не могу получить что-либо, что Я ХРАНлю В БАЗЕ ДАННЫХ!

Я просто хочу иметь возможность создаватьпользовательское поле в новой форме учетной записи и сохранить его в базе данных, мне все равно, где?

Ответы [ 4 ]

2 голосов
/ 04 сентября 2012

У меня была такая же проблема, и она вызвана использованием заглавной буквы в имени вашего атрибута.

Если вы используете только строчные буквы, все сохраняется просто отлично.

0 голосов
/ 24 января 2017

Когда я столкнулся с этой проблемой, потому что отсутствовал код, подобный этому

$installer->addAttribute("empresas", "email", array(
    "type" => "varchar",
    "backend" => "",
    "label" => "Email",
    "input" => "text",
    "source" => "",
    "visible" => true,
    "required" => true,
    "default" => "",
    "frontend" => "",
    "unique" => false
));

$attribute = Mage::getSingleton("eav/config")->getAttribute("empresas", "email");


$used_in_forms = array();

$used_in_forms[] = "adminhtml_empresas";

$attribute->setData("used_in_forms", $used_in_forms)
        ->setData("is_used_for_customer_segment", false)
        ->setData("is_system", 0)
        ->setData("is_user_defined", 0)
        ->setData("is_visible", 1)
        ->setData("sort_order", 100)
;
$attribute->save();

в моем сценарии установки после $installer->installEntities();

0 голосов
/ 07 декабря 2011

Проверьте эти таблицы MySQL, чтобы убедиться, что новый атрибут EAV был вставлен правильно.Имя атрибута должно быть в eav_attribute со всеми настройками атрибута и новым attribute_id.Новый атрибут attribute_id должен быть в новых записях в этих 3 таблицах: customer_eav_attribute, customer_eav_attribute_website, customer_form_attribute.

В customer_eav_attribute, customer_eav_attribute_website убедитесь, что для поля is_visible установлено значение 1.

Если все это подтвердится, отправьте отчет с дампами из 4 новых строк, о которых я только что упомянул, чтобы мы могли проверить все остальное, что может быть неправильным в БД.Я только недавно добавил новые атрибуты в Magento 1.6.1, и я чуть не рвал на себе волосы, но в итоге все заработало.

0 голосов
/ 07 декабря 2011

Создайте сценарий установки, подобный следующему:

<?php

$installer = $this;
$installer->startSetup();

$eav = new Mage_Eav_Model_Entity_Setup('core_setup');

$eav->addAttribute('customer', 'my_property', array(
    'label'     => 'My Property',
    'type'      => 'varchar',
    'input'     => 'text',
    'visible'   => true,
    'required'  => true,
    'position'  => 1,
));

$installer->endSetup();

Затем вы сможете добавить my_property в качестве ввода в форму «Новый клиент».

Подробнее о EAV на Блог Алана Шторма

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...