我正在使用Codeigniter,
我有一个名为'Property'的控制器,其动作叫做'details'
定义'details'动作的函数需要2个参数:
所以我们有这样的网址: example.com/property/details/23/Appartment-for-rent
第一个参数是db上记录的ID,第二个参数仅用于SEO目的
详细信息操作最终会增加DB上该记录的视图
问题:
当我使用 http://example.com/property/details/23 时
一切正常
当我使用SEO链接 http://example.com/property/details/23/Appartment-for-rent 脚本执行多次时会导致视图计数不准确。
这是控制器/动作功能:
public function details($propertyId){
$this->load->model('model_property');
$pageData['property'] = $this->model_property->getById($propertyId);
if($pageData['property']!=null){
$this->model_property->incrementViewById($pageData['property']->id);
$this->load->view('_common/header');
$this->load->view('_common/navigation');
$this->load->view('property/details',$pageData);
$this->load->view('_common/footer');
}else{
redirect(base_url().'error');
}
}
以下是增加模型视图的函数:
public function incrementViewById($id){
$this->db->where('id', $id);
$this->db->set('views', 'views+1', FALSE);
$this->db->update('property');
}