典型的な CakePHP リクエストを確認しましたが、解決策が見つかりませんでした。
そもそもmyThemeCookie存在しない。この Cookie を設定することにより、ユーザーは自分の好きなテーマを選択することができ、将来そのテーマを見ることができます。
と がmyControllerありmyActionます。にフォームがありmyAction.ctpます。ユーザーはテーマ名を選択できます。
最初のリクエストmyActionでは、 がチェックされ$_POSTます。値を見つけることができません。アクションはフォームのみを示します。
2 番目の要求では、ユーザーがフォームを送信すると、ユーザーをmyAction再度送信します。アクションは$_POSTデータを検索します。からテーマの CSS アドレスを取得し$_POSTます。を使ってmyComponent、myThemeCookieと書かれています。
それから私はmyLayout.ctpファイルを持っています。このレイアウト ファイルはmyHelperand を使用してmyHelper->getCookieTheme()、Cookie からテーマ名を取得します。ただし、ヘルパーは空の名前を付けます。そのため、ユーザーには古いテーマのフォントが表示されます。$_COOKIE(ヘルパーで変数を使用して Cookie データをチェックしていることに注意してください)
myAction ページを更新して 3 番目のリクエストを行うと、 myHelper->getCookieTheme()適切な css ファイル名が表示されます。ユーザーには新しいテーマのフォントが表示されます。
そのため、myAction で Cookie を設定した後、ヘルパー メソッドとレイアウト ファイルでそれを見ることができません。しかし、コントローラーのアクションの後にビュー/ヘルパーファイルが計算されるようです。私は何かが恋しいですか?