[英]Undefined property: App\Http\Controllers\UserController::$user
[英]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.