商品登録画面にフィールドを追加する EcCube3.0
2021年5月28日EcCube3にて商品登録画面にフィールドの追加
本来はプラグインを作ってやりたいところなのですが、
結構プラグインの製作って手間です。
EcCube3にて直接本体をさわってのフィールドの追加はとても簡単にできるのですが、
些細なことで膨大な時間を取られたので覚え書きです。
(最後になぜ時間を取られたのか落ちがあります)
EcCube3の商品登録画面に 「商品のメーカーへのURLを追加してほしい」との要望で、以下のように編集していきます。
本当に覚え書き程度の手順ですが、PHPをマスターしている人なら簡単に分かります。
????-手順1??????????????
/src/Eccube/Entity/Product.php
private $maker_url;
public function setMakerurl($maker_url)
{
$this->maker_url = $maker_url;
return $this;
}
public function getMakerurl()
{
return $this->maker_url;
}
???-手順2??????????????
/src/Eccube/Form/Type/Admin/ProductType.php
$builder
->add(‘maker_url’, ‘text’, array(
‘label’ => ‘メーカーへのリンクURL’,
))
???-手順3??????????????
/src/Eccube/Resource/doctrine/Eccube.Entity.Product.dcm.yml
Eccube\Entity\Product:
fields:
maker_url:
type: text
nullable: true
length: 65535
???手順4??????????????
src/eccube/Resource/template/admin/Product/product.twig
{{ form_row(form.maker_url) }}
????????????????????
ここからは余談です。
上記の作業にてフィールドを追加するのですが、
なぜ膨大な時間を費やしたかですが、以下のエラーです。
これですね。
2人で作業しているので、自分のEcCube3に追加フィールドはエラーにならないのに、なぜかその人がさわったフィールドはエラーになるんですよね。
メソッドエラーなわけですが、なぜだろう??
こんな簡単なメソッドが???なぜ??
Neither the property “maker_url” nor one of the methods “getMakerUrl()“???
ああぁ、maker_url なので、メソッド名も[Maker_url」って感じで書いてました。
気をつけてください。maker_url はメソッドで Makerurl()でいきましょう。
アンダーバーにやられました。