передача параметра в модель через контроллер в CodeIgniter

Я создал небольшой проект, который отображает предметы одежды, которые поступают из базы данных в CodeIgniter. Данные поступают из базы данных, и она работает, и я поставил условие где проверить категорию, а где условие не работает. Вместо отображения конкретных результатов отображаются все результаты таблицы базы данных. Я передаю параметр категории через URL. Я автоматически загрузил базу данных.

Вот как я передал параметр на домашней странице, когда пользователь нажимает ссылку «Мужчины»

<a class="dropdown-item" href="<?php echo base_url();?>index.php/Products/view/mens">Men's</a>

Это контроллер

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Products extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('GetData');
}public function view()
{
$category_name = $this->uri->segment(3);
$this->GetData->get_data($category_name);
$result = $this->GetData->get_data();
$data['result'] = $result;
$this->load->view('products',$data);
}

}

/* End of file Products.php */
/* Location: ./application/controllers/Products.php */

?>

Это модель

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class GetData extends CI_Model {public function __construct()
{

parent::__construct();

}

public function get_data($category_name=0){
$query = $this->db->get_where('mens', array('category' => $category_name));
return $query->result();
}}

/* End of file GetData.php */
/* Location: ./application/models/GetData.php */
?>

Поля таблицы базы данных — id, категория, имя категории, img_path, имя элемента

Я использовал условие where, чтобы проверить, равна ли категория мужской и отображает ли она результаты. И в таблице есть одна строка с category = women. Но вместо отображения конкретных результатов отображаются все результаты.

1

Решение

Модель:

public function get_data($category_name){
$query = $this->db->get_where('mens', array('category' => $category_name));
return $query->result();
}

контроллер:

 public function view()
{
$category_name = $this->uri->segment(3);
$result = $this->GetData->get_data($category_name);
$data['result'] = $result;
$this->load->view('products',$data);
}

Проверь это.

Пожалуйста, проверьте, существует ли первое значение $ category_name или нет.

// Удалить $this->GetData->get_data($category_name); от контроллера, как вы уже определили это снова. Не понимаю, почему вы вызываете одну и ту же функцию дважды в вашем контроллере.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector