#php #codeigniter
#php #codeigniter
Вопрос:
Я новичок в CodeIgniter.Может ли кто-нибудь, пожалуйста, помочь мне, рассказав, как передать $row['main_products_cat_id'];
модель 'id'=> 'my id here',
в контроллер. Я перепробовал так много способов, но потерпел неудачу.
Спасибо!!!
Это моя модель
function cart_product_records($id){
$this->db->from('tbl_sub_products');
$this->db->where('tbl_sub_products.sub_product_id', $id);
$query = $this->db->get();
foreach ($query->result_array() as $row){
echo $row['main_products_cat_id'];
echo $row['sub_product_id'];
echo $row['sub_product_name'];
echo $row['sub_product_description'];
echo $row['sub_product_image'];
echo $row['sub_product_price'];
}
return $query->result();
}
это мой контроллер
function shopping_cart(){
$id = $this->input->get('id');
if($query = $this->mod_products->cart_product_records($id)){
$data['result'] = array(
'id' => 'my id here',
'qty' => my qty here,
'price' => my price here,
'name' => 'my product name here'
);
}
}
Ответ №1:
Во-первых, вы не должны echo
использовать данные в своей модели — вам действительно нужны только echo
данные в вашем файле представления.
Способ передачи ваших данных заключается в том, что сначала вы переходите $id
от своего контроллера к своей cart_product_records
функции в mod_products
модели. Затем модель выполняет запрос и получает данные из вашей базы данных. Эти данные представлены $query->result_array()
or $query->result()
(вы используете оба из них, но вы должны использовать только один раз).
Итак, у вас есть return $query->result()
which отправляет ваши данные обратно на ваш контроллер. Данные будут сохранены в $query
переменной, потому что у вас есть $query = $this->mod_products->cart_product_records($id)
.
На вашем месте я бы добавил !empty()
проверку в оператор if, чтобы это выглядело так:
if( !empty($query = $this->mod_products->cart_product_records($id)) ){
Затем, в зависимости от того, какие данные вы хотите получить $query
, вы либо захотите создать цикл (который позволит вам извлекать несколько идентификаторов, цен и т. Д.), Либо вы можете извлекать определенные значения $query
, например $query[0][main_products_cat_id]
(предполагается $query
, что это массив) или $query[0]->main_products_cat_id
(если это объект).
Надеюсь, это поможет!
Ответ №2:
Ваш запрос $ содержит объект результатов базы данных. Итак, вы сделаете это в своем массиве $data в вашем контроллере.
$data['result'] = array(
'id' => $query->main_products_cat_id,
// carry on...
);
Комментарии:
1. Я думаю, что это было бы
$query[0]->main_products_cat_id
2. Вы правы. Я бы вернул $query[0] из модели.
Ответ №3:
Я не вижу смысла писать
echo $row['main_products_cat_id'];
....
В вашем цикле создайте массив как
foreach ($query->result_array() as $row){
$return_array[] = $row;
}
return $return_array
и в контроллере вы можете получить доступ как
$query['your_id'];