プラグイン > 開発について > 内部リダイレクトで一部しか表示されない |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
knaka |
投稿日時: 2017/6/7 22:26
対応状況: −−−
|
新米 登録日: 2017/6/7 居住地: 投稿: 2 |
内部リダイレクトで一部しか表示されない [EC-CUBE]3.0.14
[PHP]7.1.5 こんにちは。 プラグインから、読みやすいURLでアクセスできるようにカスタマイズしようとしています。 コントローラーを足して、内部リダイレクトで目的のページを表示させようとしています。 プラグインジェネレーターで作成した プラグインのテンプレートのサービスプロバイダに 次のコードを足しました。
/abc にアクセスすると /にアクセスしたのと同じ画面を表示したいと思っています。 301や302でブラウザにリダイレクトを指示するのでは無くて、 そのURLでアクセスさせたいのです。 参考にしたのは次のサイトです。 https://coderwall.com/p/wmlx8g/silex-forward-requests しかし、このコードで表示されるのは、本来表示されるはずの一部だけでした。具体的には#main_middleの中身だけで、 ほかの部分は表示されません。 直接/にアクセスした場合は、表示されています。 サブリクエストを作る作り方が悪いのか、 それとも入れ子でhandleを呼んではいけないのか、 どうか、ご教授下さい。 よろしくお願いします。 |
468 |
投稿日時: 2017/6/8 9:02
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 内部リダイレクトで一部しか表示されない 記載されているフォワードリクエストの仕組みについては、あまり理解できていないのですが、
表示された結果から推測すると、 PageLayoutの情報(ヘッダーやフッターなど)が上手く取得されていないのではないかと思います。 URLを元に「dtb_page_layout」テーブルのレコードを取り出していると思われますので、 「dtb_page_layout」テーブルのレコードの/abcを追加するか、 「dtb_page_layout」テーブルのレコードを取り出す時の引数(デフォルトだとURL)を変更できれば、 きちんとした状態で表示されるのではないかと思いますが・・・。
|
nyorai |
投稿日時: 2017/6/8 10:14
対応状況: −−−
|
仙人 登録日: 2015/8/21 居住地: 投稿: 302 |
Re: 内部リダイレクトで一部しか表示されない サブリクエストのやり方は問題無いと思います。
468さんの仰る通り、PageLayoutにデータがなく、ブロックが表示されていないだけかと思います。 ec-cube本体でも以下のようにデータ投入している箇所があるので参考にされてください。 https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Resource/doctrine/migration/Version20170225120000.php ※setUrlにはルーティング名を入れてください。ご提示いただいたコードだと「abc_alias」ですね。 |
knaka |
投稿日時: 2017/6/10 9:36
対応状況: −−−
|
新米 登録日: 2017/6/7 居住地: 投稿: 2 |
Re: 内部リダイレクトで一部しか表示されない 468様、nyorai様、お返事ありがとうございます。
(新しい方のnyorai様のコメントへのお返事で続けさせていただきますので、よろしくお願いします) 頂いたアドバイスを参考に、元投稿のコードを次の様に変更したら、うまく表示されました。
src/Eccube/Application.php のコードをコピペしただけですので 不格好ですが、この方向で上手く行きそうです。 お勧めいただいたdtb_page_layoutの変更はもうちょっと仕様が安定したらトライしてみます。 ありがとうございました。 |
nyorai |
投稿日時: 2017/6/12 10:02
対応状況: −−−
|
仙人 登録日: 2015/8/21 居住地: 投稿: 302 |
Re: 内部リダイレクトで一部しか表示されない そういえばこのやり方でも可能ですね。問題無いと思います。
※逆に勉強になりました。ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |