问题描述
我在尝试将变量从控制器传递到视图时遇到问题。我想我在某个地方犯了一个错误,因为我是新手,所以找不到。
我的控制器方法是:
public function paymentdetail($order_code)
{
$this->load->model('Payment_Model');
$paymentDetail = $this->Payment_Model->getpaymentdetail($order_code);
$orderDetail = $this->Payment_Model->getOrderDetail($order_code);
// echo print_r($paymentDetail);
$datas['content'] = $this->load->view('payment/paymentDetail',array('paymentDetail' => $paymentDetail,'orderDetail' => $orderDetail),true);
$this->load->view('layouts/main_template',$datas);
}
以下模型函数getpaymentdetail()
返回一个数组(result_array()),这是我所关心的。如果我可以解决这个问题,那么我也可以使用其他模型方法。
$this->Payment_Model->getpaymentdetail($order_code);
当我在视图文件(PaymentDetail.php)中输入<?php echo $paymentDetail['column_name']; ?>
时出现错误
Undefined index: column_name
为什么会出现此错误?
解决方法
模型函数getpaymentdetail()返回一个数组(result_array())
通常,这些数组的结构如下:
Array
(
[0] => Array
(
[ID] => 3120
[column_name] => col1
)
)
因此您无法通过<?php echo $paymentDetail['column_name']; ?>
访问column_name,因为此索引在您的数组结构中不存在。
如果将索引更深一点,它将起作用:<?php echo $paymentDetail[0]['column_name']; ?>
注意,如果您希望返回多于1行,则上面的内容将仅访问第一个结果(索引为0)行!您需要一个foreach循环来获取所有结果,请参见Generating Query Results - result arrays