私はこれを行う方法について複数のチュートリアルを試してみましたが、どれも動作していません。
Magento 2.1.5を実行しています。
私は単に顧客属性を作成しようとしています。私のSetup/UpgradeData.php
スクリプトは次のとおりです。
名前空間ワイルドカード\ CustomerMods \ Setup;
use Magento\Customer\Model\Customer;
use Magento\Customer\Setup\CustomerSetupFactory;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\UpgradeDataInterface;
class UpgradeData implements UpgradeDataInterface
{
/**
* Customer setup factory
*
* @var CustomerSetupFactory
*/
private $customerSetupFactory;
/**
* Init
*
* @param CustomerSetupFactory $customerSetupFactory
*/
public function __construct(CustomerSetupFactory $customerSetupFactory)
{
$this->customerSetupFactory = $customerSetupFactory;
}
/**
* Installs DB schema for a module
*
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
*
* @return void
*/
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
$customerSetup->removeAttribute(Customer::ENTITY, "customer_payment_type");
$customerSetup->addAttribute(Customer::ENTITY, "customer_payment_type", array(
"type" => "varchar",
"backend" => "",
"label" => "Payment Type",
"input" => "select",
"source" => 'Wildcard\CustomerMods\Model\Config\Source\Customer\PaymentTypeOptions',
"visible" => true,
"required" => true,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$my_attribute = $customerSetup->getEavConfig()->getAttribute(Customer::ENTITY, ' customer_payment_type');
$used_in_forms[] = "adminhtml_customer";
$used_in_forms[] = "customer_account_create";
$used_in_forms[] = "customer_account_edit";
$my_attribute->setData("used_in_forms", $used_in_forms)
->setData("is_used_for_customer_segment", true)
->setData("is_system", 0)
->setData("is_user_defined", 0)
->setData("is_visible", 1)
->setData("sort_order", 100);
$my_attribute->save();
$installer->endSetup();
}
}
module.xml
でバージョン番号を増やしてみました。これはsetup_module
テーブルで取得されますが、属性の作成を拒否します。私は管理領域(新規顧客と編集顧客)とデータベース内のeav_attribute
テーブルを調べています。属性はどちらにも表示されません。
上記のコードに何か問題がありますか?
Magentoのデバッグ情報を見ると素晴らしいですが、ログには何もありません。
誰か助けてもらえますか?私はちょうど私の髪を引っ張っている!