Я пытаюсь передать модель аргументу, который передается с контроллера. Поэтому в 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();
}
Однако аргумент не передается, может ли кто-нибудь увидеть эту проблему здесь?
вы не можете использовать двойную цитату внутри двойной котировки, вы можете использовать один или два типа:
$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%'";
В 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');