从codeigniter

时间:2015-10-07 19:26:30

标签: php arrays codeigniter

我有这个型号:

public function get_products_by_slug($slug)
    {
        $this->db->select('*');
        $this->db->from('products');
        $this->db->where('slug', $slug);
        $query = $this->db->get();
        return $query->result(); 
    }

这个控制器:

public function products($category)
    {

        $data['products_by_category'] = $this->products_model->get_products_by_slug($category);

        if (empty($data['products_by_category']))
        {
            show_404();
        }

        $data['main_content'] = 'pages/products_by_category';
        $this->load->view('templates/template', $data);
    }

并且在页面标题视图中作为页面中的横幅我想要使用这两个函数来抓取数据库中的第一个类别字段以将其用作标题。我知道模型中有方法可以抓住第一行。但我想要的不仅仅是制作另一个模型,我想使用上面的那些函数将它用于标题和页面的其余部分以显示所有产品。

视图页面:

<?php foreach($products_by_category as $row){
    echo '<div class="container">';
    echo '<h1>'.$row->category(1).'</h1>';
    echo '<hr/>';
    echo '</div>'; } ?>

现在通过这种方式,它将使用与数据库中相同的类别名称。我想要的只是标题的一个名称。

1 个答案:

答案 0 :(得分:0)

经过大量的网络搜索,答案非常简单。您不需要foreach循环只使用传递的变量,其中包含数组中行的编号和字段的名称。就像那样。

<?php
    echo '<div class="container">';
        echo '<h1>'.$products_by_category[1]['category'].'</h1>';
        echo '<hr/>';
    echo '</div>'; 
  ?>