Php Can';codeigniter中的t缓存对象
我在地址控制器中有以下代码Php Can';codeigniter中的t缓存对象,php,codeigniter,caching,memcached,Php,Codeigniter,Caching,Memcached,我在地址控制器中有以下代码 public function index() { if($this->session->userdata('isLogin')) { $this->load->driver('cache'); $this->load->model('MemberModel'); if(!$this->cache->get('province
public function index()
{
if($this->session->userdata('isLogin')) {
$this->load->driver('cache');
$this->load->model('MemberModel');
if(!$this->cache->get('province') == false) {
$this->load->model('ShippingModel');
$data['provinces'] = $this->ShippingModel->the_provinces(); // it will return json object
$this->cache->save('province', $data['provinces'], 300);
} else {
$data['provinces'] = $this->cache->get('province');
}
$userdata = $this->MemberModel->getProfile($this->session->userdata('userid'));
$data['user'] = $userdata;
$this->display_member_area('member/address', $data);
}
else {
redirect(base_url());
}
}
当我想使用以下方式获取数据时:
var_dump($this->cache->get('province'));
我得到的结果总是很明显
bool(false)
但是当我试着这样做的时候
var_dump($data['provinces']) // it's show me json object, that I want
谁能告诉我哪里做错了
提前感谢从
if
条件中删除false
,然后使用此代码
if(!$this->cache->get('province')) {
$this->load->model('ShippingModel');
$data['provinces'] = $this->ShippingModel->the_provinces();
$this->cache->save('province', $data['provinces'], 300);
} else {
$data['provinces'] = $this->cache->get('province');
}
确保您在以下位置的配置中具有正确的凭据: 它将位于您的
application/config/memcached.php
文件中。主机名是您设置memcached实例的ip。如果愿意,您可以提供多个服务器
您的CI版本是什么?您在哪里设置了此处使用的缓存<代码>$this->cache->get('province')当使用的缓存模块找不到缓存键时返回false。@AbdulAhmadMatin我使用的是3.1版。5@Charis我在那里设置了
$this->cache->save('province',$data['provinces',300)代码>在我上面代码的第9行。您能确保缓存驱动程序按预期工作吗?可能使用简单的字符串数据来保存和检索它。在我的团队看到类似的东西之前,有一个人试图保存一些非序列化的资源对象代码>$this->cache->save('province',$provinces,300)代码>没有出现错误。但是当我做var_dump($this->cache->get('province')代码>它总是返回bool(false)。我在上面的评论中尝试了你的代码。但仍然返回错误。谢谢AbdulAhmadMatin