簡體   English   中英

未定義的屬性:App \\ Http \\ Controllers \\ MyController :: $ cookieJar

[英]Undefined property: App\Http\Controllers\MyController::$cookieJar

所以我的控制器看起來如下:

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;
    }

但我不斷收到錯誤

未定義的屬性:App \\ Http \\ Controllers \\ MyController :: $ cookieJar

在getID函數中。

我究竟做錯了什么? 非常感謝任何可能的幫助!

代碼中的問題基本上不是那個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;
    }

當我們在控制器的所有功能中使用任何屬性來攜帶某些值時,我們必須定義這些屬性。 請檢查我的代碼。 還有一件事,屬性的順序在構造函數方法中也是不正確的。 因為您正在使用一個使用$cookieJar屬性的函數getID() 因此,您必須首先定義該屬性,然后在構造函數方法中使用第二個屬性$id

我認為這對你有所幫助。

在您的控制器中,您調用getID方法,並在getID方法中使用您的cookiejar,但cookiejar尚未初始化。

如果你切換方法調用,它應該工作

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM