首页 > 解决方案 > 如何在codeigniter的自定义库中设置cookie?

问题描述

您好,我正在尝试在我的自定义库中设置 cookie,CI_Snippetfunctions如下所示

class CI_Snippetfunctions
{

public function add_count($slug)
{



  $check_visitor = $this->input->cookie(urldecode($slug), FALSE);

   $ip = $this->input->ip_address();

   if ($check_visitor == false) {
    $cookie = array(
        "name"   => urldecode($slug),
        "value"  => "$ip",
        "expire" =>  time() + 7200,
        "secure" => false
    );

    $this->input->set_cookie($cookie);
    $this->Constant_model->update_counter(urldecode($slug));
    }
   }
  }

但我收到以下错误

在此处输入图像描述

标签: codeignitercookiescodeigniter-3

解决方案


试试这个,我不确定但仍然

public function add_count($slug)
{
    $CI =& get_instance();//CI super object
    $check_visitor = $CI->input->cookie(urldecode($slug), FALSE);

    $ip = $CI->input->ip_address();

    if ($check_visitor == false) {
        $cookie = array(
            "name"   => urldecode($slug),
            "value"  => "$ip",
            "expire" =>  time() + 7200,
            "secure" => false
        );

        $CI->input->set_cookie($cookie);
        $CI->Constant_model->update_counter(urldecode($slug));
    }
}

要访问库中 CodeIgniter 的本机资源,请使用 get_instance() 方法。此方法返回 CodeIgniter 超级对象。

通常从你的控制器方法中,你将使用 $this 构造调用任何可用的 CodeIgniter 方法

然而,$this 只能直接在你的控制器、模型或视图中工作。如果你想在你自己的自定义类中使用 CodeIgniter 的类,你可以这样做:


推荐阅读