[EC-CUBE] 4.0.3
[レンタルサーバ] XSERVER
[OS] Linux sv10390.xserver.jp 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64
[PHP] 7.3.16
[データベース] MySQL 5.7.29
[WEBサーバ] Apache
[導入プラグインの有無] 多少有り
[カスタマイズの有無] 多少有り
[現象]
会員登録ページにメルマガの受け取り選択用のラジオボタンを設置したく、
こちらと
こちらの記事を参考に実装を行いましたが、
traitの実装、Proxyを生成、定義をデータベースに反映をそれぞれ行いましたが下記のエラーが出て期待するものを出力することができませんでした。
front.ERROR [N/A] [2809a78] [N/A] [Eccube\Log\Logger:log:66] - システムエラーが発生しました。 ["No route found for \"GET /html/user_data/assets/img/common/favicon.ico\" (from \"http://xs419385.xsrv.jp/shop/entry\")","/home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/http-kernel/EventListener/RouterListener.php",139,"#0 /home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/event-dispatcher/EventDispatcher.php(212): Symfony\\Component\\HttpKernel\\EventListener\\RouterListener->onKernelRequest(Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent), 'kernel.request', Object(Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher))\n#1 /home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/event-dispatcher/EventDispatcher.php(44): Symfony\\Component\\EventDispatcher\\EventDispatcher->doDispatch(Array, 'kernel.request', Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent))\n#2 /home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/http-kernel/HttpKernel.php(127): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch('kernel.request', Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent))\n#3 /home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#4 /home/xs419385/xs419385.xsrv.jp/public_html/shop/vendor/symfony/http-kernel/Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#5 /home/xs419385/xs419385.xsrv.jp/public_html/shop/index.php(76): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#6 {main}"] [GET, /shop/html/user_data/assets/img/common/favicon.ico, 121.44.64.143, http://xs419385.xsrv.jp/shop/entry, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36]
traitの部分に欠陥があるとは思うんですが特定ができておりません。
教えていただければ幸いです。
下記にソースコードと実装を行った流れを記入します。
app/Customize/Entity/MailMagazineTrait.php
<?php
namespace Customize\Entity;
use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation\EntityExtension;
/**
* @EntityExtension("Eccube\Entity\Customer")
*/
trait MailMagazineTrait
{
/**
* @var string|null
* @ORM\Column(type="integer", length=1, nullable=false, options={"unsigned":true, "default":0})
* @Eccube\Annotation\FormAppend(
* auto_render=false,
* type="\Symfony\Component\Form\Extension\Core\Type\ChoiceType;",
* options={
* "required": false,
* "label": "メールマガジン登録",
* "choices" : {
* "登録する" : 0,
* "登録しない" : 1,
* },
* "multiple" : false,
* "expanded" : true,
*
* })
*/
private $mail_magazine;
/**
* @return integer
*/
public function getMailMagazine()
{
return $this->mail_magazine;
}
/**
* @param integer $mail_magazine
* @return MailMagazineTrait
*/
public function setMailMagazine($mail_magazine)
{
$this->mail_magazine = $mail_magazine;
return $this;
}
}
そしてproxyの生成
bin/console eccube:generate:proxies
キャッシュを一度クリア
bin/console cache:clear --no-warmup
DBに反映
bin/console eccube:schema:update –force –dump-sql
index.twigに下記を追加
<dl>
<dt>
{{ form_label(form.mailmagazine, 'メルマガ登録', { 'label_attr': { 'class': 'ec-label' }}) }}
</dt>
<dd>
<div class="ec-radio{{ has_errors(form.mailmagazine) ? ' error' }}">
{{ form_widget(form.mailmagazine) }}
{{ form_errors(form.mailmagazine) }}
</div>
</dd>
</dl>