【问题标题】:call a helper function in controller in codeigniter在 codeigniter 的控制器中调用辅助函数
【发布时间】:2015-11-09 08:11:43
【问题描述】:

我为访问命中创建了一个助手,它包含一个将一些数据插入数据库的函数:

hits_counter_helper.php

function count_hits($options = array())
{

    //Determine whether the user agent browsing your site is a web browser, a mobile device, or a robot.
    if ($this->agent->is_browser())
    {
        $agent = $this->agent->browser() . ' ' . $this->agent->version() . ' - ' . $this->agent->platform();
    }
    elseif ($this->agent->is_robot())
    {
        $agent = $this->agent->robot();
    }
    elseif ($this->agent->is_mobile())
    {
        $agent = $this->agent->mobile();
    }
    else
    {
        $agent = 'Unidentified User Agent';
    }

    //Detect if the user is referred from another page
    if ($this->agent->is_referral())
    {
        $referrer = $this->agent->referrer();
    }

    // correcting date time difference by adding 563 to it.
    $date = date('Y-m-j H:i:s', strtotime(date('Y-m-j H:i:s')) + 563);

    $data = array (

        'page_Address'  =>   current_url(),

        'user_IP'       =>   $this->input->ip_address(),

        'user_Agent'    =>   $agent,

        'user_Referrer' =>   $referrer,

        'hit_Date'      =>   $date

    );

    $this->db->insert('counter', $data);

}

一旦我自动加载了帮助程序并在我的控制器中调用了这个函数:

My_controller.php

public function index() {
    count_hits();
    //index code here
}

问题是我得到一个空白页,我认为其他代码没有运行。我做错了什么?!

【问题讨论】:

  • 你是否在你的助手中加载了user_agent类?
  • 是的,我做到了。我自动加载它
  • 为什么需要创建助手。您可以在模型中编写一个函数,然后在控制器中调用它。这很简单
  • 我将开发这个助手并添加其他与点击计数器相关的功能。我需要这个帮手

标签: php codeigniter helper


【解决方案1】:

将以下代码添加到辅助函数的开头:

//get main CodeIgniter object
$CI =& get_instance();

将函数中的所有$this 替换为$CI

然后像这样在控制器中的任意位置加载辅助函数:

count_hits();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 2014-01-23
    • 2010-11-24
    • 1970-01-01
    • 2012-01-07
    • 2019-11-25
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多