如何在cakephp中的helper类中读取cookie

时间:2012-07-26 06:28:07

标签: cakephp

我在cakephp中使用cookie帮助器,我使用以下代码来访问cookie变量的值

$this->Cookie->write('testvar','testvalue');

当我尝试获取此cookie变量vid的值时,我已经创建了一个帮助类

$this->Cookie->read('testvar');

它产生错误(在非对象上调用成员函数read())。 有没有其他方法可以在helper中访问cookie变量。虽然我可以尝试$ _Cookie(服务器变量)。

2 个答案:

答案 0 :(得分:3)

你的助手应该是这样的:

<?php
App::uses('AppHelper', 'View/Helper');
App::uses('CakeSession', 'Model/Datasource');
class MyCookieHelper extends AppHelper 
{
         public function writeCookie($name, $value = null) 
         {
               return CakeSession::write($name, $value);
         }
         public function readCookie($name)
         {
               return CakeSession::read($name);
         }
}

您可以在视图中使用它,如:

$this->MyCookie->readCookie($cookie_var_name);

不要忘记在控制器中包含MyCookie帮助程序;

public $components = array('MyCookie');

答案 1 :(得分:-1)

您必须按照以下步骤操作:

在控制器类中,您必须放置此行,或者如果您必须在多个控制器中使用它,您可以放入APP控制器:

public $components = array('Cookie');

在动作/功能中你可以使用它:

$this->Cookie->write('User.name', 'Larry');
echo $this->Cookie->read('User.name');