无法将变量从控制器传递到 CodeIgniter 中查看

Can't pass variable from controller to view in CodeIgniter

我在尝试将变量从控制器传递到视图时遇到问题。我想我在某个地方做错了,我找不到它,因为我是新手。

我的控制器方法是:

    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() returns 一个数组 (result_array()) 而这正是我所关心的。如果我能解决这个问题,那么我也可以使用其他模型方法。

$this->Payment_Model->getpaymentdetail($order_code);

当我在视图文件 (PaymentDetail.php) 中键入 <?php echo $paymentDetail['column_name']; ?> 时,出现错误

Undefined index: column_name

为什么会出现此错误?

model function getpaymentdetail() returns an array (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