2016-11-18 4 views
2

コンストラクション関数でcookie変数を設定しようとしていますが、コンストラクタ内でCookie::get('cookie_name');を実行すると、以下のようなハッシュ変数が設定されます。コンストラクト関数でクッキーを取得できません

eyJpdiI6ImRnRWF3TEa82Wm9cL3lRbng0OW1Wc1FBPT0iLCJ2YWx1ZSI6IlI4TkgwZGd6Mn 

以下は、私が試しているコードです。

class CookieController extends Controller 
{ 
    public $cookie; 
    public function __construct(Request $request){ 
     $this->cookie = Cookie::get('cookie_name'); 
    } 

    public function viewCookie(Request $request){ 
    return $this->cookie; 
    } 

私がをviewCookie関数の中に呼び出し、正しい値を表示するとします。コンストラクション関数でCookieクラスが無効になっていますか?

+0

は、 ? – atoms

答えて

1

私はそれがusing sessions in controller constructorの5.3の変更に関係していると思います。

リクエストがまだ発生しておらず、セッションと認証が永続的にHTTPリクエストに関連付けられているため、コンストラクタでsessionまたはauthを使用することは非常に悪いことです。複数の異なる要求で複数回呼び出すことができる実際のコントローラメソッドでこの要求を受け取る必要があります。コントローラにセッションまたは認証情報をコンストラクタで解決させることにより、コントローラ全体が実際の着信要求を無視するようになり、テストなどで重大な問題を引き起こす可能性があります。

関連する問題