首页 > 解决方案 > 消息:使用数据数组的未定义变量

问题描述

我正在使用数据数组从数据库传输数据,它显示下面给出的错误消息...

遇到 PHP 错误 严重性:通知消息:未定义变量:VOYAGE_INFO 文件名:CLIENT/MANIFEST.PHP 文件:C:\XAMPP\HTDOCS\PHIVIDEC\APPLICATION\VIEWS\PORT\CLIENT\MANIFEST.PHP 行:40 FUNCTION:_ERROR_HANDLER –

这是我的代码:

public function manifest() {
    $this->Auth->authCheck();
    $data = $this->template();

    $data_array = array(
        'voyage_info' =>$this->PortManifestModel->get_voyage()->result(),
    );

    // your code here

    $this->load->view("port/client/manifest", $data, $data_array);
}

在我的视图页面中:

<a class="btn btn-primary primary-bg btn-lg  col-md-4 m-2 btn-cus" href="">
    <?php foreach($voyage_info as $voyage) {  ?>
        <h3>Voyage <?=$voyage->voyage_number?></h3> 
        <small>Schedule</small>
    <?php }  ?>
</a>

我需要做什么来解决这个问题?

标签: phpmysqlcodeigniter

解决方案


数据必须通过视图加载方法的第二个参数中的数组或对象从控制器传递到视图。因此,当控制器加载视图时,它会在第二个参数中找到数据。

而在第二个$data你没有提供数据,而是你试图将第三个参数传递给它

请更新您的代码,如下所示...

$this->load->view("port/client/manifest", $data, $data_array);

$this->load->view("port/client/manifest", $data_array);

关于视图的第三个参数,请查看以下官方 来源的详细信息...

第三个可选参数可让您更改方法的行为,使其以字符串形式返回数据,而不是将其发送到浏览器。如果您想以某种方式处理数据,这可能很有用。如果将参数设置为 TRUE(布尔值),它将返回数据。默认行为是 false,将其发送到您的浏览器。如果要返回数据,请记住将其分配给变量:


推荐阅读