1

ビュー ファイルから Cookie に到達する必要があります。コントローラー内で CookieComponent を使用し、Cookie 値を渡してファイルを表示できることを認識していますset()

私たちのウェブサイトの訪問者には、オプションページがあります。ユーザーの選択は Cookie に保存されます。これまでは CookieComponent を使用して値をチェックし、その値を使用して作業を行っていました。しかし今、新しいオプションの選択肢を追加したので、ビュー ファイルまたはヘルパーからアクセスする必要があります。コントローラーからビューに Cookie 値を渡す場合、アクションごとにそれを行う必要があり、私はそれを好みません。また、より複雑なコードになります。

この質問その質問を見ました。(また、 でそれらを読み取ることもできます$_COOKIE[<cookie_name>]が、そのソリューションは暗号化された Cookie には使用できません。私の Cookie は暗号化されていませんが、将来的には暗号化される可能性があります)

私の質問は、Cake のライブラリに CookieHelper がないのはなぜですか? ビューファイルからクッキーに到達するのは悪い習慣ですか? ビューから Cookie に到達する方法はありますか? たとえば、そのヘルパーを使用して使用するカスタム ヘルパーを作成し$_COOKIEますか?

4

3 に答える 3

3

これを行うには、コントローラーからデータを渡すのが適切な方法です。

多くの/すべてのビューでデータが必要な場合は、Controller::beforeFilter()コールバックを使用して、特定のコントローラーによってレンダリングされたすべてのビューで変数を使用できるようにします。

class MyController extends AppController
{
    // ...

    public function beforeFilter()
    {
        parent::beforeFiler();

        $this->set('cookie', $this->Cookie->read('cookie'));
    }

    // ...
}

Cookie を読み取る前に、可能なCookie コンポーネントの構成が完了していることを確認してください。

于 2013-11-02T18:33:53.457 に答える
0

SessionHelper経由でアクセスできると思います:

echo $this->Session->read($cookieName);
于 2013-11-04T16:01:29.737 に答える