我尝试在Phalcon中设置并获取cookie。我在DI中注册了cookie 像这里http://docs.phalconphp.com/en/latest/reference/cookies.html
$di->set('cookies', function() {
$cookies = new Phalcon\Http\Response\Cookies();
$cookies->useEncryption(true);
return $cookies;
});
$di->set('crypt', function() {
$crypt = new Phalcon\Crypt();
$crypt->setKey('#_+//*(*&eA|;76$');
return $crypt;
});
在Controller中我设置了这样的cookie:
$this->cookies->set('test', 'test', time()+600);
之后我想获得cookie:
$val = $this->cookies->get('test');
第一个扼杀事物 - 如果我尝试打印我的$val
我得到的不是这个变量的值而是奇怪的对象(Phalcon\Http\Cookie Object
)。
第二个奇怪 - 如果我使用加密,下一个结构将为我返回false
。
if ($val == 'test'){
return true;
} else {
return false;
}
如果我不使用加密counstruction返回true
但是如果我尝试打印没有加密设置的$val
我得到的不是值,而是相同的奇怪对象。
我做错了什么?
答案 0 :(得分:2)
简单。 $this->cookies->get('test')
会向您返回cookie object中所述的documentation。你应该得到这样的价值:
$this->cookies->get('test')->getValue();
所以,你可以设置你想要的任何东西,但是当你检索它时,它会返回Phalcon\Http\Cookie
有很多方法。不一致,但显然应该让你的生活更轻松。