【问题标题】:CakePHP Notice (8): Undefined property: View::$Cookie [CORE/Cake/View/View.php, line 804]CakePHP 注意(8):未定义属性:View::$Cookie [CORE/Cake/View/View.php, line 804]
【发布时间】:2012-03-27 15:16:38
【问题描述】:

注意(8):未定义属性:View::$Cookie [CORE/Cake/View/View.php, line 804]

我在 AppController 中使用if ($this->Cookie->read('userId') != null),它给了我上面的错误。为什么?

【问题讨论】:

  • 当您在控制器中运行该代码时,它如何在View 上给您一个错误?
  • 您的上述声明会比if (!$this->Cookie->read('userId')) 更好-但无论如何:您以某种方式在视图中使用cookie 组件。这当然没有意义。尝试找到那段代码并将其移动到控制器级别。
  • 该错误只会显示在视图中,而不是控制器中,因此,我认为可以肯定地说问题在于$this->Cookie->read() 在视图内(.ctp 文件)。 CakePHP 的 CookieComponent 不能在视图中使用。如果您需要在视图中读取 cookie,请在控制器中使用 $this->set('name', $this->Cookie->read('value')); 或在视图中使用 $_COOKIE 变量(根据 CakePHP 的编码标准非常规)。

标签: php cakephp cookies


【解决方案1】:

您可能需要将此添加到控制器中:

var $components = array('Cookie');

【讨论】:

  • 好吧,jeremyharris 有一个很好的观点。为什么在视图中出现错误?你能从控制器发布更多代码吗?
【解决方案2】:

这是因为你在 CTP 文件中使用了 Cookie 组件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多