我是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'
);
}
}
答案 0 :(得分:2)
首先 - 您的模型中不应该echo
数据 - 您的视图文件中应该只有echo
个数据。
数据流动的方式首先是将$id
从控制器传递到cart_product_records
模型中的mod_products
函数。然后,模型运行查询并从数据库中获取数据。此数据由$query->result_array()
或$query->result()
表示(您使用这两种数据,但只应使用一次)。
然后你有return $query->result()
将数据发送回你的控制器。数据将存储在$query
变量中,因为您有$query = $this->mod_products->cart_product_records($id)
。
如果我是你,我会在if语句中添加!empty()
检查,所以看起来像这样:
if( !empty($query = $this->mod_products->cart_product_records($id)) ){
然后,根据您希望从$query
获取的数据,您要么要构建一个循环(这将使您能够提取多个ID,价格等),或者您可以检索来自$query
的具体值,例如$query[0][main_products_cat_id]
(假设$query
是数组)或$query[0]->main_products_cat_id
(如果它是对象)。
我希望有所帮助!
答案 1 :(得分:1)
您的 $ query 包含数据库结果对象。因此,您将在控制器的$ data数组中执行此操作。
$data['result'] = array(
'id' => $query->main_products_cat_id,
// carry on...
);
答案 2 :(得分:1)
我没有任何意义去写
echo $row['main_products_cat_id'];
....
在你的循环中创建数组为
foreach ($query->result_array() as $row){
$return_array[] = $row;
}
return $return_array
在控制器中,您可以访问
$query['your_id'];