Это действительно субъективно, это зависит от того, как вы хотите обрабатывать ваши URI. Но для простого варианта контроллер будет выглядеть так:
class Categories extends CI_Controller {
public function __construct() {
// this makes working with urls easier
$this->load->helper('url');
}
public function index() {
$this->load->model('Model_Category');
$data['row2']= $this->Model_Category->get_category();
$this->load->view('view_page.php',$data);
}
// Below, handle the logic for displaying a single category
public function details($slug) {
$this->load->model('Model_Category');
$data['row2']= $this->Model_Category->get_category_by_slug($slug);
$this->load->view('view_details_page.php', $data);
}
}
На ваш взгляд, определите href следующим образом: я использую слаг в этом фрагменте, но вы можете использовать все, что будет однозначно идентифицировать вашу категориюстрок в вашей базе данных.
<div class="row mb-4">
<div class="items mr-2 ml-2">
<?php foreach ($row2->result() as $key => $data) : ?>
<a class="text-light listcategory" href="<?= site_url('category/details/'.$data->slug) ?>">
<span><?= $data->name_cat ?></span>
</a>
<?php endforeach; ?>
/div>
</div>
Наконец, в вашей модели запросите строку отдельной категории
public function get_category_by_slug($slug) {
$this->db->select('column1, column2, column3');
$this->db->from('categories_table');
$this->db->where('unique_column', $sulg);
return $this->db->get()->result();
}