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');
}