Magento2客户帐户创建,保存属性中的布尔值

时间:2018-04-20 07:08:20

标签: php magento magento2

所以,正如标题所说,我在我的客户实体中添加了一些新属性,其中一个是布尔值,您可以从setup/InstallData.php

中的代码中看到
$customerSetup->addAttribute(\Magento\Customer\Model\Customer::ENTITY, 'azienda', [
        'type' => 'int',
        'label' => 'Azienda',
        'input' => 'boolean',
        'source' => '',
        'required' => false,
        'visible' => true,
        'position' => 333,
        'system' => false,
        'backend' => ''
    ]);

并且我还为"customer_account_create"创建了前端布局覆盖,一切正常,我添加的其他文本字段已正确保存但我无法将其保存在我的数据库中{{1属性是一个布尔值。我已经尝试了复选框,单选按钮,带有“是”,“真”和“1”的文本字段,无论我在该字段中放置什么,布尔属性在注册后总是未经检查(false)。

尝试在实体数组中添加"azienda",但它仍然没有将值保存为true / checked

希望我已经足够好地解释了我的问题,我觉得这样的事情很小,我做错了,但我无法弄清楚它是什么。谢谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

好的,我已经设法解决了这个问题,最终找不到任何困难或难以理解的东西。

我做了我应该从一开始就做的事情,检查&#34;如何订阅时事通讯&#34;正在保存,我注意到<input type="checkbox">value="1"属性,所以我把它放在我的复选框中,现在它可以工作了。如果有人遇到同样的问题,请留下代码。

    <div class="field choice newsletter">
        <input type="checkbox" name="azienda" title="<?= $block->escapeHtmlAttr(__('Azienda')) ?>" value="1" id="azienda" class="checkbox">
        <label for="azienda" class="label"><span><?= $block->escapeHtml(__('Azienda')) ?></span></label>
    </div>

根据我的理解这是有效的,因为只有在使用on值检查它们但是如果我们添加了发送的value="1"属性以及Magento2时,复选框将被添加到帖子请求中收到azienda -> 1它会在我的用户实体中正确保存