首页 文章

从视图codeigniter中的控制器访问数组

提问于
浏览
1

我正在使用codeigniter开发一个Web应用程序 . 我试图在我的视图中显示一个数组,从模型传递到控制器然后再查看 . 我尝试了访问数组,如: $data->value 但它没有用 . 这是我的代码:

模型

public function getPurchasesTotals($supplier_id)
    {
    $this->db->select('SUM(COALESCE(amount, 0)) as total_due', FALSE)
    ->where('supplier_id', $supplier_id);
    $q1 = $this->db->get('payments');
    if ($q1->num_rows() > 0) {
    $row = $q1->row();
    $dueamt= $row->total_due;
    }
    $this->db->select('SUM(COALESCE(grand_total, 0)) as total_amount, SUM(COALESCE(paid, 0)) as paid', FALSE)
    ->where('supplier_id', $supplier_id);
    $q = $this->db->get('purchases');
    if ($q->num_rows() > 0) {
    $row1 = $q->row();
    $grandtot = $row1->total_amount;
    $paid = $row1->paid;
    }
    $datarow= array(
    'dueamtpaid' =>$dueamt,
    'total_amount' =>$grandtot,
    'paid' =>$paid
    );
    return $datarow;
    }

调节器

function supplier_report($user_id = NULL)
    {
    $this->sma->checkPermissions('suppliers', TRUE);
    if (!$user_id) {
    $this->session->set_flashdata('error', lang("no_supplier_selected"));
    redirect('reports/suppliers');
    }
    $this->data['purchases'] = $this->reports_model->getPurchasesTotals($user_id); // Here is my array
    $this->data['total_purchases'] = $this->reports_model->getSupplierPurchases($user_id);
    $this->data['users'] = $this->reports_model->getStaff();
    $this->data['warehouses'] = $this->site->getAllWarehouses();
    $this->data['supplierdetails'] = $this->reports_model->getSupplierDetails($user_id);
    $this->data['suppaymentdetails'] = $this->reports_model->getSupplierPaymentDetails($user_id);

    $this->data['error'] = validation_errors() ? validation_errors() : $this->session->flashdata('error');
    $this->data['user_id'] = $user_id;
    $this->page_construct('reports/supplier_report', $meta, $this->data);
    }

视图:

<div class="row">
        <div class="col-sm-12">
            <div class="row">
                <div class="col-sm-6">
                <?php echo print_r($purchases);?> //Here I get my array values, But I can't access. 
                    <a href='reports/add_payment/<?php echo $supplierdetails->id;?>' data-toggle="modal" data-target="#myModal"> <div class="small-box padding1010 col-sm-4 bpurple">
                        <h3><?= isset($supplierdetails->initial_due) ? $this->sma->formatMoney($supplierdetails->initial_due) : '0.00' ?></h3>

                        <p><?= lang('initial_due') ?></p>
                    </div></a>
                    <div class="small-box padding1010 col-sm-4 bblue">
                        <h3><?= isset($purchases->total_amount) ? $this->sma->formatMoney($purchases->total_amount) : '0.00' ?></h3>

                        <p><?= lang('purchases_amount') ?></p>
                    </div>
                    <div class="small-box padding1010 col-sm-4 blightOrange">
                        <h3><?= isset($purchases->paid) ? $this->sma->formatMoney($purchases->paid) : '0.00' ?></h3>

                        <p><?= lang('total_paid') ?></p>
                    </div>
                    <div class="small-box padding1010 col-sm-4 borange">
                        <h3><?= (isset($purchases->total_amount) || isset($purchases->paid)) ? $this->sma->formatMoney($purchases->total_amount - $purchases->paid + $supplierdetails->initial_due) : '0.00' ?></h3>

                        <p><?= lang('total_due_amount') ?></p>
                    </div>
                </div>
            </div>
        </div>

这是我打印数组时的结果:

<?php echo print_r($purchases);?>

`Array ( [dueamtpaid] => 2500.0000 [total_amount] => 17404.0000 [paid] => 7000.0000 ) 1`

我试过 $purchases->total_amount$purchases->paid ,但它显示为零 . 我不知道哪里出错了 . 任何人都可以帮我解决这个问题 .

1 回答

  • 3

    在您提供的代码中,model以数组格式返回数据 . 问题是你正在访问这个数组的项目,因为它是一个对象 .

    尝试:

    $purchases['total_amount'] and $purchases['paid']
    

    代替:

    $purchases->total_amount and $purchases->paid
    

相关问题