Php 无法通过型号功能代码点火器获取数据

Php 无法通过型号功能代码点火器获取数据,php,arrays,codeigniter,model,Php,Arrays,Codeigniter,Model,我在现有控制器中创建了一个新函数,在该函数中,我正在访问一个模型的函数,该函数有一个查询来获取列表 我已将模型加载到控制器中。此模型函数可与其他函数一起使用,但不适用于新创建的函数 class Cart extends CI_Controller { function Cart() { parent::__construct(); $this->mdl_common->checkUserSession(); $this

我在现有控制器中创建了一个新函数,在该函数中,我正在访问一个模型的函数,该函数有一个查询来获取列表

我已将模型加载到控制器中。此模型函数可与其他函数一起使用,但不适用于新创建的函数

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'];

        }

    }  
模型


我无法获取阵列数据。我可以看到空白警报。
这里出了什么问题?请帮助。谢谢。

我认为您编写的查询不正确。请尝试以下操作:

$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();

正如上面的评论,在看到您的问题后,模型对于一个函数很好地工作,而对于另一个函数则不行,因此我认为加载模型是您必须正确查看的内容

我看到在你不工作的功能中,你注意到了一些基本的问题

  • 您已经在
    is\u 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();
    
    还有一件事我想说的是,如果你在同一个控制器的多个函数中使用同一个模型,那么你应该使用
    \uu construct()


    通过将模型添加到
    \u construct()
    中,您可以在整个控制器和所有函数中使用它

    查询可以与其他函数一起工作,因此我认为查询中没有问题。我已经在_构造中加载了模型,以便在整个控制器中使用。首先,我已经在该函数中本地加载了模型,但这两种方式都不起作用。您删除了注释吗?或者检查传递到模型的数据是否正确@SidYes删除了注释。我不希望查询有任何限制,所以我将限制作为空白偏移量传递为0,并且数据参数未在查询中使用,所以它是空白的。
    $carts = $this->mdl_cart_web->get_cart_list($limit,$offset,$s_data)->result_array();
    
    public function __construct() {
        parent::__construct ();     
        $this->load->model('mdl_cart_web');              
    }