▼テンプレート
[EC-CUBE] EC-CUBE 3.0.16
[サーバ ローカル環境] MAMP
[OS] MacOS 10.14.1
[PHP] PHP 7.2.8
[データベース] MySQL 5.7.23
[ブラウザ] chrome 70.0.3538.102
[導入プラグインの有無]
この商品をみた人はこんな商品もみています
HSDRelatedProduct
関連商品プラグイン
RelatedProduct
売上ランキング
SalesRanking
FAQ管理プラグイン
Shiro8Faq3
タグ検索 for EC-CUBE3
TagSearch
[カスタマイズの有無]
「サンプル請求」ボタンを「カートに入れる」ボタンと同列に追加し、商品種別Bとして設定しました。
サンプル請求された場合、「お支払方法」を既選択にするために改変を行いました。
/Applications/MAMP/htdocs/test1/src/Eccube/Form/Type/ShoppingType.php
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$payments = $options['payments'];
$payment = $options['payment'];
$message = $options['message'];
//ここから 追加しました。
if (!$payment) {
$payment = $this->app['eccube.repository.payment']->find(5);
}
//ここまで 追加しました。
$builder
->add('payment', 'entity', array(
'class' => 'Eccube\Entity\Payment',
'property' => 'method',
'choices' => $payments,
'data' => $payment,
'expanded' => true,
'constraints' => array(
new Assert\NotBlank(),
),
))
->add('message', 'textarea', array(
'required' => false,
'data' => $message,
'constraints' => array(
new Assert\Length(array('min' => 0, 'max' => 3000))),
));
}
[現象]
「ご注文内容のご確認」画面で「注文する」ボタンを押すと
FatalThrowableError in ShoppingController.php line 318:
Call to a member function getId() on null
というエラーが出るようになりました。
DBを見るとdtb_orderテーブルのpayment_idがnullになっていました。
DBに保存する段階で失敗していると思われます。
お支払方法を既選択状態で「注文する」ボタンが正常に動くようにするにはどうすればよろしいでしょうか?ご教授お願いします。