2016-07-13 1 views
1

だから、次のように私のコントローラはなります

use Illuminate\Http\Request; 
use Illuminate\Cookie\CookieJar; 
use Cookie; 

class MyController extends Controller { 

    public function __construct(CookieJar $cookieJar) 
    { 
     $this->id = $this->getID(); 
     $this->cookieJar = $cookieJar; 
    } 

    private function getID() 
    { 
     if (!isset($_COOKIE["ID"])){ 
      $id = 20; 
      $this->cookieJar->queue('ID', $id, 60); 
     } 

     return $id; 
    } 

をしかし、私はエラー

未定義のプロパティ得続ける:アプリケーション\のHttp \をControllers \ MyController :: $ cookieJar

In getID関数です。

私は間違っていますか?可能性のある助けを非常に感謝します!

+0

使用を動作するはずです、周りを呼び出します。 –

+0

@ GM.Akbarを使用すると、「CookieJarクラスが存在しません」というメッセージが表示されます – Coffee

+0

Laravelのバージョンは何ですか? –

答えて

0

あなたのコードでは、基本的に問題はcookieJarクラスではありません。

use Illuminate\Http\Request; 
use Illuminate\Cookie\CookieJar; 
use Cookie; 

class MyController extends Controller { 

    protected $id; 
    protected $cookieJar; 

    public function __construct(CookieJar $cookieJar) 
    { 
     $this->cookieJar = $cookieJar; 
     $this->id = $this->getID(); 
    } 

    private function getID() 
    { 
     if (!isset($_COOKIE["ID"])){ 
      $id = 20; 
      $this->cookieJar->queue('ID', $id, 60); 
     } 

     return $id; 
    } 

我々はいくつかの値を運ぶためのコントローラのすべての機能で任意のプロパティを使用しているし、我々はこれらのプロパティを定義する必要があります。以下は、コントローラの正しいコードです。私のコードをチェックしてください。 もう1つ、プロパティの順序もコンストラクターメソッドで正しくありません。 $cookieJarプロパティを使用している関数getID()を使用しているためです。したがって、まずそのプロパティを定義してから、コンストラクタメソッドで第2のプロパティ$idを使用する必要があります。

これはあなたに役立つと思います。

0

コントローラではgetIDメソッドを呼び出し、getIDメソッドではcookiejarを使用しますが、cookiejarはまだ初期化されていません。

あなたが切り替える場合の方法は、それが代わりに使用を照らし\クッキー\をCookieJarの

public function __construct(CookieJar $cookieJar) 
{ 
    $this->cookieJar = $cookieJar; 
    $this->id = $this->getID(); 
} 
関連する問題