将参数传递给控制器​​时有多个(不需要的)执行

时间:2014-09-10 14:56:13

标签: php codeigniter parameters controller action

我正在使用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');
    }

0 个答案:

没有答案