CodeIgniter:如何通过ID获取数据并进行预览(其中ID)

时间:2015-05-01 10:19:48

标签: php mysql codeigniter

我有2张桌子:

  1. PRODUCT_GROUP
  2. 产品
  3. 这是每个产品在表中都有group_id作为外键。

    我尝试通过group_id调用每个产品。

    这是我的list_group视图:

     <a href="<?= base_url('list_group/get_product_by_group/'. $value->group_id);?>" class="right-icon"><i class="icon-line-ellipsis"></i></a>
    

    我尝试在网址中附加group_id。

    这是我的控制者:

        public function get_product_by_group($group_id)
        {
    
                if($this->uri->segment(3))
                {
                        $this->load->database();
                        $group_id = $this->input->get('group_id', TRUE);
                        $data['product_data'] = $this->group_model->list_product_by_group($group_id);
                        $this->load->view('fend/list_product', $data);
    
                }
                else
                {
                        redirect('list_group');
                }
    
        }
    

    这是我的模特:

            function list_product_by_group($group_id)
            {
                    $this->db->select('*');
                    $this->db->where('group_id', $group_id);
                    $query = $this->db->get('product');
                    return $query->result();
            }
    

    ,最后一个是list_product视图:

     <?php
          foreach($product_data as $value)
          {
     ?>
    
       <div class="masonry-thumbs col-3" data-big="2" data-lightbox="gallery">
          <a href="<?= base_url('uploads/'. $value->product_picture);?>" data-lightbox="gallery-item"><img class="image_fade" src="<?= base_url('uploads/'. $value->product_picture);?>" alt="Gallery Thumb 1"></a>
       </div>
    
     <?php
         }
     ?>
    

    我没有收到错误,但数据没有出现在product_view中。

    感谢您的帮助:))

1 个答案:

答案 0 :(得分:0)

如果您删除行$group_id = $this->input->get('group_id', TRUE);,它将解决您的问题。

以下是解释:

您的控制器功能名称为public function get_product_by_group($group_id),因此当您转到此链接时localhost/norwin/list_group/get_product_by_group/1 1将作为$ group_id传递到您的get_product_by_group功能中。所以您的最终功能将如下所示< / p>

public function get_product_by_group($group_id='')
//write this way so that you can call the url like
//localhost/norwin/list_group/get_product_by_group
{

        if($group_id)//no need to check uri->segment
        {
                $this->load->database();                    
                $data['product_data'] = $this->group_model->list_product_by_group($group_id);
                $this->load->view('fend/list_product', $data);

        }
        else
        {
                redirect('list_group');
        }

}