CodeIgniter如何为视图页面提供动作URL

时间:2015-04-22 17:01:45

标签: php codeigniter url controller

我有用于显示产品的CodegIniter系统。当产品视图页面通过类似

的URL执行时
localhost/project/index.php/product/view/102

我想添加一个选项,在此页面中为特定产品添加评论,但我该如何提供

$data['action'] = site_url('product/prodcutView');

这是我到目前为止所尝试的,但它没有保存价值,我知道动作网址不正确,请指教。

function addComment() {

    // set common properties
    $data['title'] = 'Add new comment';
    $data['action'] = site_url('/product/ProductView');


    // set empty default form field values
    $this -> _set_fields();
    // set validation properties
    $this -> _set_rules();

    // run validation
    if ($this -> form_validation -> run() == FALSE) {

         log_message('debug', 'comment save failed.');

    } else {
        // save data
        $comment = array(
        'product_id' => $this -> input -> post('product_id'),
         'comment' => $this -> input -> post('comment'), 
         'review' => $this -> input -> post('review'), 
         );
        $category_id = $this -> Comment_model -> save($comment);


    }

    // load view
    $this -> load -> view('/product/ProductView', $data);
}

2 个答案:

答案 0 :(得分:0)

您可以尝试使用uri细分,确保您的网站网址链接正确并与网址中的内容相匹配。

localhost/project/index.php/product/view/102

测试回显$this->uri->segment(3)并查看显示的数字。

if ($this->uri->segment(3) == FALSE) {
  $data['action'] = site_url('product/view');
} else {
  $data['action'] = site_url('product/view') .'/'. $this->uri->segment(3);
}

答案 1 :(得分:0)

您可以将其存储在数组中,并将该var视为此$this->load->view('product_view',$data);  在这里,$ data包含prod_id。  像这样$data['prod_id']=$result[0]['prod_id'];