質問 > フロント機能 > Shippingデータが取れない?? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mackarel |
投稿日時: 2021/7/20 15:08
対応状況: 解決済
|
半人前 登録日: 2018/11/2 居住地: 投稿: 24 |
Shippingデータが取れない?? ▼テンプレート
[EC-CUBE] 3系最新 [レンタルサーバ] さくら [PHP] 7.4 構築済みのEC-CUBEを別サーバに移管したのですが、 ShoppingController.phpでフォームを作成している箇所、 getShippingFormBuilder→ShoppingService::getShippingFormBuilder内の1071行目辺り、
で Undefined offset: 0 のエラーが発生しております。 調べると、 ShoppingService::getFormPayments内の998行目で取得しているshippingsにデータが入っていないようで、それに起因して支払い方法($payments)が取得できていないようです。 (nullではなく、shippings内のcollectionの配列データがない状態) ここは必ずデータが入っているものと思うのですが、そうじゃないケースってあるのでしょうか・・・??また、解決方法知っている方いらっしゃいましたらお助けいただければ幸いです!! 補足: ソースやDBはまるごとコピーしたので差はないです。 エラーが発生しているのは↓このあたりです。
【追記】 ↑↑カスタマイズしてない箇所かと思いきやカスタマイズしてる箇所でした。 行数等デフォから異なっております。 原因らしきところは↓このあたりになります。(こちらは非カスタマイズ)
|
468 |
投稿日時: 2021/7/21 12:34
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: Shippingデータが取れない?? $paymentsが空の配列になる可能性はあると思います。
支払方法には金額による有効/無効の判定もあり条件に一致しない場合は空の配列が返ってくるようになっているかと思います。 function getFormPaymentsの最後にある $payments = $this->getPayments($payments, $Order->getSubTotal()); で呼び出しているfunction getPayments()は以下の内容ですが ループ中のifで1度も真にならなかった場合、 $pays = array(); が返ってきます。
デフォルトでは支払方法が空の配列の場合も想定して処理が実装されているかと思います。
|
mackarel |
投稿日時: 2021/8/4 22:44
対応状況: −−−
|
半人前 登録日: 2018/11/2 居住地: 投稿: 24 |
Re: Shippingデータが取れない?? ありがとうございます!
お返事に気づくのが遅くなってしまいました。。。 あれから色々やってみたのですが、単純にファイルが足りなかっただけでした。。。アップ時にひっそり失敗していたようです。。。 お騒がせしましたm(__)m |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |