CodeIgniter: ошибка передачи аргумента модели

1

Я пытаюсь передать модель аргументу, который передается с контроллера. Поэтому в URL-адресе, если я ввожу URL-адрес www.foobar.com/report/ecomma/ford ("report" - это имя контроллера, "ecomma" - функция "ford"), я ожидаю, что контроллер передаст модель аргумент 'ford' модель затем должна выполнить sql-запрос с аргументом, переданным ему, LIKE "%$brand%"";.

У меня есть следующий контроллер (называемый отчет):

    public function ecomma($brand){
        $this->load->model('report_model');
        $data ['query'] = $this->report_model->generate_brand_data_report($brand);
        $this->load->view('brand_report_view',$data);
    }
}

Модель, связанная с контроллером, приведена здесь:

public function generate_brand_data_report($brand = ''){
$sql = "SELECT 
    DISTINCT pd_model_code AS 'Model_SKU',
             pd_model_description AS 'Model_Title' 
    FROM iris_product_data
    WHERE pd_vendor LIKE "%$brand%"";

$query = $this->db->query($sql);
return $query->result();

}

Однако аргумент не передается, может ли кто-нибудь увидеть эту проблему здесь?

  • 0
    Можете ли вы проверить, перенаправляет ли URL сначала эту функцию в первую очередь? А также проверить значение в этой переменной?
Теги:
codeigniter

2 ответа

1
Лучший ответ

вы не можете использовать двойную цитату внутри двойной котировки, вы можете использовать один или два типа:

$sql = "SELECT 
DISTINCT pd_model_code AS 'Model_SKU',
         pd_model_description AS 'Model_Title' 
FROM iris_product_data
WHERE pd_vendor LIKE \"%$brand%\"";

или

 $sql = "SELECT 
DISTINCT pd_model_code AS 'Model_SKU',
         pd_model_description AS 'Model_Title' 
FROM iris_product_data
WHERE pd_vendor LIKE '%$brand%'";
  • 0
    Спасибо за это, я не заметил ошибку и предположил, что проблема была в том, как я справился с чем-то в Code Igniter, это всего лишь мой второй день работы с CI!
2

В Active Record вы можете написать свой запрос как

$this->db->distinct('pd_model_code AS Model_SKU');
$this->db->select('pd_model_description AS 'Model_Title'');
$this->db->like('pd_vendor',$brand);
$query=$this->db->get('iris_product_data');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню