我在现有控制器中创建了一个新函数,我正在访问模型的函数,该函数有一个查询来获取列表。
我已将模型加载到控制器中。此模型函数与其他函数一起使用,但不适用于新创建的函数。
class Cart extends CI_Controller
{
function Cart()
{
parent::__construct();
$this->mdl_common->checkUserSession();
$this->load->model('mdl_friend_web');
$this->load->model('api/mdl_friend','mdl_friend_api');
$this->load->model('mdl_cart_web');
$this->load->library('pagination');
}
//适用于此功能
function ajax_get_cart_list($offset = 0)
{
is_ajax();
$this->load->model('mdl_cart_web');
$limit = PER_PAGE;
$s_data = $_POST;
$carts = $this->mdl_cart_web->get_cart_list($limit,$offset,$s_data)->result_array();
$totalRows = $this->mdl_cart_web->get_total_cart_product($s_data)->num_rows();
$data = $this->mdl_common->pagination_data('cart/get_cart_list/',$totalRows,$limit,'show_data');
$data['carts'] = $carts;
$data['total_cart'] = $totalRows;
$html = $this->load->view('cart/ajax_cart_list',$data,true);
echo $html;
}
//不为此工作
function calculate_distance()
{
$limit = '';
$delivery = 0;
$previousName = '';
$count = 0;
$oneShop = '0';
is_ajax();
// $this->load->model('mdl_cart_web');
$lat1 = $_POST['lat1'];
$long1 = $_POST['long1'];
// $user_id = $_POST['user_id'];
$user_id = $this->session->userdata('user_id');
$carts = $this->mdl_cart_web->get_cart_list($limit,0,'')->result_array();
$response = array();
$data['carts'] = $carts;
foreach($data['carts'] as $row) {
echo $row['store_latitude'];
}
}
模型
<?php
class Mdl_cart_web extends CI_Model
{
/*=================================================================================
Get cart list
==================================================================================*/
function get_cart_list($limit,$offset,$data)
{
$this->db->select('c.*,p.*,s.name as store_name,s.latitude as store_latitude,s.longitude as store_longitude,count(r.product_id) as review , IFNULL(AVG(r.star),0) as avg_star,i.*',false);
$this->db->join('p_product as p','c.product_id = p.product_id','left');
$this->db->join('p_product_image as i','c.product_id = i.product_id','left');
$this->db->join('p_product_review as r','c.product_id = r.product_id','left');
$this->db->join('p_store as s','s.store_id = p.store_id','left');
$this->db->limit($limit,$offset);
$this->db->where('c.user_id',$this->session->userdata('user_id'));
$this->db->group_by('c.cart_id');
$this->db->from('p_cart as c');
return $this->db->get();
}
?>
我无法获取数组数据。我可以看到空白警报。 这里出了什么问题?请帮忙。谢谢。
答案 0 :(得分:0)
我认为您正在编写查询但未正确尝试此操作:
$this->db->select('c.*,p.*,s.name as store_name,s.latitude as store_latitude,s.longitude as store_longitude,count(r.product_id) as review , IFNULL(AVG(r.star),0) as avg_star,i.*',false);
$this->db->from('p_cart as c');
$this->db->join('p_product as p','c.product_id = p.product_id','left');
$this->db->join('p_product_image as i','c.product_id = i.product_id','left');
$this->db->join('p_product_review as r','c.product_id = r.product_id','left');
$this->db->join('p_store as s','s.store_id = p.store_id','left');
$this->db->limit($limit, $offset);
$this->db->where('c.user_id', $this->session->userdata('user_id'));
$this->db->group_by('c.cart_id');
return $this->db->get();
答案 1 :(得分:0)
如上面的评论和看到你的问题后,模型适用于一个函数而不是另一个函数,所以我认为加载模型是你必须正确看待的。
我看到你在不工作的功能中发现了一些基本问题。
您已在is_ajax()
之后评论了模型加载代码。 // $this->load->model('mdl_cart_web');
首先删除该评论,然后重试。
将正确且正确的数据发送到模型。请检查以下正确执行的代码行。
在你的不工作模式中。
$carts = $this->mdl_cart_web->get_cart_list($limit,0,'')->result_array();
在你的工作模式中:
$carts = $this->mdl_cart_web->get_cart_list($limit,$offset,$s_data)->result_array();
如果你在同一个控制器中的更多功能中使用相同的模型,我想要的一件事就是你应该使用__construct()
public function __construct() {
parent::__construct ();
$this->load->model('mdl_cart_web');
}
通过在__construct()
中添加模型,您可以在整个控制器和所有功能中使用它。