未定义 属性: 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;
}
但我一直收到错误消息
Undefined property: App\Http\Controllers\MyController::$cookieJar
在 getID 函数中。
我做错了什么?非常感谢任何可能的帮助!
基本上您的代码中的问题不是 cookieJar class。以下是控制器的正确代码:
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;
}
当我们在控制器的所有函数中使用任何 属性 来携带一些值时,我们必须定义这些属性。请检查我的代码。
还有一件事,构造方法中属性的顺序也不正确。因为您使用的函数 getID()
正在使用 $cookieJar
属性。所以你必须先定义 属性 然后在构造函数方法中使用第二个 属性 $id
.
我想这对你有帮助。
在你的控制器中,你调用了getID方法,在getID方法中,你使用了你的cookiejar,但是cookiejar还没有被初始化。
如果切换方法调用,它应该可以工作
public function __construct(CookieJar $cookieJar)
{
$this->cookieJar = $cookieJar;
$this->id = $this->getID();
}
所以我的控制器看起来如下:
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;
}
但我一直收到错误消息
Undefined property: App\Http\Controllers\MyController::$cookieJar
在 getID 函数中。
我做错了什么?非常感谢任何可能的帮助!
基本上您的代码中的问题不是 cookieJar class。以下是控制器的正确代码:
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;
}
当我们在控制器的所有函数中使用任何 属性 来携带一些值时,我们必须定义这些属性。请检查我的代码。
还有一件事,构造方法中属性的顺序也不正确。因为您使用的函数 getID()
正在使用 $cookieJar
属性。所以你必须先定义 属性 然后在构造函数方法中使用第二个 属性 $id
.
我想这对你有帮助。
在你的控制器中,你调用了getID方法,在getID方法中,你使用了你的cookiejar,但是cookiejar还没有被初始化。
如果切换方法调用,它应该可以工作
public function __construct(CookieJar $cookieJar)
{
$this->cookieJar = $cookieJar;
$this->id = $this->getID();
}