質問 > フロント機能 > カートページから商品をお気に入り登録できるようにしたい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
anonim |
投稿日時: 2023/10/3 15:52
対応状況: 開発中
|
半人前 登録日: 2023/9/5 居住地: 投稿: 23 |
カートページから商品をお気に入り登録できるようにしたい。 [EC-CUBE]4.1.0
表題の通り、カート画面からお気に入り登録をできるようにしたいと考えています。 お気に入り登録機能を持つProductController.phpを参考に、CartController.phpを以下のように変更しています。 ・indexメソッド内にis_favoritを追加して商品ごとに既にお気に入り登録されているのか確認する。 ・productController.phpのcheckVisibilityメソッド及びaddFavoriteメソッドを追加して、商品の表示/非表示の判断およびお気に入り登録を可能にする。 ・cart/index.twigにお気に入りボタンのテンプレートを追加する。 これらの変更でお気に入りボタンの設置及びお気に入り登録を基本的にできるようになったのですが、カート画面内で一番上に表示されている商品のみ、以下のエラーが出ます。/cartに対してpost送信をしている部分はないと思うのですが… No route found for "POST /cart": Method Not Allowed (Allow: GET) なお、一番上以外の商品については問題なく登録で来ています。 何かご存じの方がいらっしゃいましたら、ご教授のほどお願いします。 |
mcontact |
投稿日時: 2023/10/3 16:56
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1364 |
Re: カートページから商品をお気に入り登録できるようにしたい。 > No route found for "POST /cart": Method Not Allowed (Allow: GET)
エラー内容をよく読みましょう。 許可されているFormメソッドは、GETのみ許可されています。 POSTは許可されていませんと言っています。
|
h_tanaka |
投稿日時: 2023/10/3 17:01
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1693 |
Re: カートページから商品をお気に入り登録できるようにしたい。 Controller の Route アノテーションにて methods={"GET"} で定義しているURLに POST 送信を行おうとするとそのようなエラーになります。
type="submit" で定義しているボタンを押しているか、ボタンを押したときに javascript で submit() を行っているか、していないでしょうか。
|
anonim |
投稿日時: 2023/10/4 10:57
対応状況: −−−
|
半人前 登録日: 2023/9/5 居住地: 投稿: 23 |
Re: カートページから商品をお気に入り登録できるようにしたい。 ご回答いただきありがとうございます。
post送信しているため、このようなエラーが発生していることはすでに認識しております。 私の質問の意図としましては ・なぜpostで送信されてしまうのか。 ・なぜ一番上に表示される商品のみpostなのか。 の2点でした。言葉足らずで申し訳ございません。 また、/cartへ遷移するのは画面上に表示されるボタンではなく、productController内のaddFavoriteメッソド借りてきた以下のリダイレクトとしています。 return $this->redirectToRoute('cart'); 重ねて説明不足をお詫び申し上げます。 よろしくお願いします。 |
h_tanaka |
投稿日時: 2023/10/4 11:00
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1693 |
Re: カートページから商品をお気に入り登録できるようにしたい。 一番上に表示される商品の場合も productController 内の addFavorite が実行されていることを確認していますか?
|
anonim |
投稿日時: 2023/10/4 14:04
対応状況: −−−
|
半人前 登録日: 2023/9/5 居住地: 投稿: 23 |
Re: カートページから商品をお気に入り登録できるようにしたい。 確認したところ、addFavoriteが実行できていなかったようです。
app/template/default/Cart/index.twigに以下のようにお気に入りボタンを設置しているのですが、開発者ツールで確認したところ、どうやら一番上の商品についてのみformタグが設定されなくなってしまっているようです。 <li> {% if BaseInfo.option_favorite_product %} <form action="{{ url('product_add_favorite', {id:Product.id}) }}" method="post"> <div class="ec-productRole__btn"> {% if Product.id not in is_favorite_products %} <button type="submit" id="favorite" class="ec-blockBtn--cancel">{{ 'お気に入りに追加'|trans }}</button> {% else %} <button type="submit" id="favorite" class="ec-blockBtn--cancel" disabled="disabled">{{ 'お気に入りに追加済です。'|trans }}</button> {% endif %} </div> </form> {% endif %} </li> また、javaScriptを使用できないようにしても全く同様の動作・エラーでしたので、js以外に問題があるかと思います。 |
h_tanaka |
投稿日時: 2023/10/4 14:12
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1693 |
Re: カートページから商品をお気に入り登録できるようにしたい。 いただいている情報のみでは判断がつきません。
Twig ファイルにて {{ dump(BaseInfo.option_favorite_product) }} のようにすれば値を出力できるので、デバッグしてみてください。
|
anonim |
投稿日時: 2023/10/17 11:10
対応状況: 解決済
|
半人前 登録日: 2023/9/5 居住地: 投稿: 23 |
Re: カートページから商品をお気に入り登録できるようにしたい。 formがネストになっているために起こった現象だったようです。
ご回答いただいた皆様、誠に有難うございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |