我想将模型中查询的数据传递给控制器,为此我使用return $ data。
我的控制器(更新):
public function order() {
$this->load->model('cost_m');
$shipping_cost = $this->cost_m->get_cost_user($this->input->post('city'));
$this->data['shipping_cost'] = $shipping_cost[0]['shipping_cost'];
$order = array('user_id' => $this->session->userdata('user_id'),
'shipping cost' => $shipping cost,
'total_cost' => (($this->cart->total())+$shipping_cost),
'total_item' => $this->input->post('total_item'));
}
和我的模特
public function get_cost_user($city){
$data = array();
$this->db->like('city_name',$city);
$data = return $this->_get()->result_array();
return $data;
}
我的问题是为什么我的get_cost_user()返回值总是给我NULL?
答案 0 :(得分:0)
首先,您在尝试设置运费时遇到语法错误。你有一个空间"运输"和"成本"在$this->data->shipping cost =
。那是一个错误。解决这个问题。
真正的问题是您正在创建变量:$this->data->shipping_cost
,然后尝试在下一行中访问它,如下所示:$shipping_cost
。
您的困惑来自以下事实:当Code Igniter中加载view
时,您可以使用其索引名称访问$data
数组中设置的变量。这是因为Code Igniter在幕后做了一些魔术,让你这样做。
以下是设置运费的正确方法:
$shipping_cost = $this->cost_m->get_cost_user($this->input->post('city'));
$this->data['shipping_cost'] = $shipping_cost[0]['shipping_cost'];
然后在您的视图中访问运费如下:
var_dump($shipping_cost);
你再次在$shipping cost
中输入错字。但这不是问题。将数组中的$shipping cost
更改为$this->data['shipping_cost']
。
答案 1 :(得分:0)
好的,这是我的最终修正
控制器
public function order() {
$this->load->model('cost_m');
$shipping_cost = $this->cost_m->get_cost_user($this->input->post('city'));
$shipping_cost = $shipping_cost[0]['shipping_cost'];
$order = array('user_id' => $this->session->userdata('user_id'),
'shipping cost' => $shipping_cost,
'total_cost' => (($this->cart->total())+$shipping_cost),
'total_item' => $this->input->post('total_item'));
}
模型
public function get_cost_user($city){
$data = array();
$this->db->like('city_name',$city);
$data = return $this->_get()->result_array();
return $data;
}