我创造了一个
帮手
保存
user_agent
在里面
db
有方法的
saveVisit();
访问帮助者:
function saveVisit($visitable_type='',$visitable_id='')
{
$CI =& get_instance();
$CI->load->library('user_agent');
$ip = $CI->input->ip_address();
$userId = $CI->session->userdata('userId');
if (!isset($userId)) {
$userId = 0;
}
if ($CI->agent->is_mobile()) {
$mobile=$CI->agent->mobile();
}else {
$mobile=0;
}
$data = array(
'ip'=>$ip,
'visitable_id'=>$visitable_id,
'visitable_type'=>$visitable_type,
'user_id'=>$userId,
'created_at'=>dbtime(),
'browser'=>$CI->agent->browser(),
'version'=>$CI->agent->version(),
'platform'=>$CI->agent->platform(),
'mobile'=>$mobile,
'referral'=>$CI->agent->referrer(),
);
$CI->db->insert('visits',$data);
}
当我调用类似
saveVisit();
在我的
帮手
,一切正常,我写的地方就叫它!
但是当我从
$route['default_controller'] = 'display/home';
此方法将从所有
方法
在我所有的
控制器
!!!!
我只想调用这个方法主页不是全部
控制器/方法
!
这个问题只针对我
$route['default_controller']='display/home';
我的控制器代码:
class Display extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function home()
{
// some codes here
saveVisit('home');
}
}
我想要
saveVisit();
仅在主页中调用,其他人不调用
编辑时间:
我在中创建了一个新函数
帮手
默认测试和调用
控制器
,函数被调用一次
但是
奔跑的
两次
!
测试
方法
帮助程序中的代码:
function test()
{
$CI =& get_instance();
if ($CI->session->userdata('visit')!=null) {
$plus = $CI->session->userdata('visit');
$CI->session->set_userdata('visit',$plus+1);
echo $CI->session->userdata('visit');
}else {
$CI->session->set_userdata('visit',1);
}
当我打电话的时候
test();
内部默认值
Controller
每次页面刷新的结果为(其他控制器正常):
2
4
6
8
10
12
14
.
.
.
为什么会这样?
编辑3:
当我打电话给
助手函数
里面
默认控制器
它将运行两次,从另一个运行一次
控制器
!问题是我没打电话
功能
在其他
控制器