首页 > 解决方案 > Codeigniter 查看未定义变量错误

问题描述

我有一个用于管理商店物品的程序。一切正常。然后我需要update_stock_id为已发布的项目获取一份报告。

尝试了以下代码

控制器

class Reports extends FZ_Controller
{

    function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');

        $this->load->model('Report_model');

    }
public function printIssuedItems($id)
    {
        $data['issuedDetail'] = $this->Report_model->printIssuedItemData($id);
        $this->load->view('reports/printIssuedItems', $data);
    }
}

模型

function printIssuedItemData($id)
    {
        $this->db->select('store_update_stock.request_no, store_update_stock.billed_date, tbl_user.username,store_item.item_name,
        sum(store_update_stock_details.r_qty) as r_qty, sum(store_update_stock_details.ap_qty) as ap_qty,
        sum(store_update_stock_details.is_qty) as is_qty');
        $this->db->from('store_update_stock');
        $this->db->join('store_update_stock_details', 'store_update_stock.update_stock_id=store_update_stock_details.update_stock_id');
        $this->db->join('tbl_user', 'store_update_stock.supplier=tbl_user.userId');
        $this->db->join('store_item', 'store_update_stock_details.item=store_item.item_id', 'right');
        $this->db->where(array('store_update_stock.update_stock_id' => $id, 'store_update_stock_details.status' => 1));
        $this->db->group_by('store_update_stock_details.item');

        $q = $this->db->get();
        if ($q->num_rows() > 0) {
            return $q->result();
        }
        return false;


    }

查看(相关部分)

<?php
if (!empty($issuedDetail)) {
    $issuedData = $issuedDetail[0];
}
?>

<div class="col-xs-12">
            <h2 class="page-header">

                <small class="text-center"> Request No: <b><?=$issuedData->request_no?></b>&nbsp;&nbsp;&nbsp;&nbsp;
                Request Date: <b><?=$issuedData->billed_date?></b>&nbsp;&nbsp;&nbsp;&nbsp;
                Officer Name: <b><?=$issuedData->username?></b></small>
            </h2>
     </div>

该模型超出了正确的结果集。但执行视图时,会显示以下错误消息。

遇到 PHP 错误
严重性:通知
消息:未定义变量:issuedData
文件名:reports/printIssuedItems.php
行号:52

回溯:

文件:
C:\xampp\htdocs\wpsstores\application\views\reports\printIssuedItems.php
行:52
功能:_error_handler

这指的是变量$issuedData

我检查了代码的每一部分。但没有发现任何问题。

标签: mysqlcodeigniter

解决方案


为了避免视图中出现未定义变量错误,您需要排除您的 html 代码被执行,以防数据库查询不返回任何结果。

改变:

<?php
if (!empty($issuedDetail)) {
    $issuedData = $issuedDetail[0];
}
?>
YOUR HTML CODE

至:

<?php
if (!empty($issuedDetail)):
    $issuedData = $issuedDetail[0];
?>
YOUR HTML CODE
<?php else:?>no records found
<?php endif?>

如果查询返回记录,这将显示 html 代码,否则显示“无记录”消息


推荐阅读