codeigniter 无法传递带有未定义变量的变量结果(在路由之后)

所以我试图制作一个产品的详细信息页面,从产品列表链接。我已经配置了路由。但是该页面显示未定义的 foreach 变量出错。


这是错误:


A PHP Error was encountered

Severity: Notice


Message: Undefined variable: listproduk


Filename: user/view.php


Line Number: 28


Backtrace:


File: E:\xampp\htdocs\emedco\application\views\user\view.php

Line: 28

Function: _error_handler


File: E:\xampp\htdocs\emedco\application\controllers\ProdukList.php

Line: 19

Function: view


File: E:\xampp\htdocs\emedco\index.php

Line: 315

Function: require_once

详情页,view.php


<div class="container-fluid">

   <h4>Detail</h4>

   <h2><?php echo $listproduk['nama_produk']; ?></h2> <!--line 28-->

   <p><?php echo $listproduk['deskripsi_produk']; ?></p>

</div>

产品列表视图(详细视图之前的前一页,没有错误),produklist.php


<?php foreach ($produk as $listproduk) : ?>

    <div class="col-6 col-md-4 col-xl-3 mb-4 ">

        <div class="card text-center shadow h-100 py-2">

            <img class="card-img-top" src="<?php echo base_url('images/product/' . $listproduk['img_produk']) ?>" width="100" alt="Card image cap">

            <div class="card-body">

                <h6 class="card-title"><?php echo $listproduk['nama_produk']; ?></h6>

                <p style="font-size:80%;" class="card-text">Kategori obat</p>

                <p style="font-size:80%;" class="card-text">Rp. <?php echo $listproduk['harga_produk']; ?></p>

            </div>

            <div class="card-footer">

                <a href="<?php echo site_url('ProdukList/'.$listproduk['kode_produk']); ?>" class="btn btn-primary btn-block btn-sm">Detail</a>

            </div>

        </div>

    </div>

<?php endforeach; ?>

控制器,ProdukList.php


<?php


class ProdukList extends CI_Controller

{

    public function index()

    {

        $data['produk'] = $this->ProdukList_model->get_produk();

        $this->load->view('user/produklist', $data);

    }

试图在 $data 之后添加 true,并且$this->load->view('user/view', $data, true);它显示空白页面。


动漫人物
浏览 83回答 3
3回答

尚方宝剑之说

我认为您应该在视图中$produkdet['nama_produk']而不是第 28 行。$listproduk['nama_produk']下一行也一样。

狐的传说

请在您的控制器中查看您发送到视图的内容。您正在您的控制器索引函数中发送数据['produk'],并且您正在添加'listproduk'而不是'produc';尝试这个 ”

郎朗坤

错误信息是...遇到 PHP 错误严重性:注意消息:未定义的变量:listproduk文件名:用户/view.php行号:28所以看看你的 user/view.php 文件中的第 28 行你有......<h2><?php echo $listproduk['nama_produk']; ?></h2> <!--line 28-->所以您现在要做的是查看将变量传递到视图中的位置。在您的 ProdukList.php 控制器中,您有public function view($kode_produk = NULL){&nbsp; &nbsp;$data['produkdet'] = $this->ProdukList_model->get_produk($kode_produk);&nbsp; &nbsp;if (empty($data['produkdet'])) {&nbsp; &nbsp; &nbsp;show_404();&nbsp; &nbsp;}&nbsp; &nbsp;$this->load->view('user/view', $data); <!--line 19-->}在上面,您可以看到您正在分配要传递到视图中的变量$data['produket'] 。在您看来,这将成为 $produket,这是一个数组。但是您的视图需要一个名为$data['listproduk']的数组,这将在视图中生成一个名为$listproduk 的数组。所以报错信息很明确地表明你要么没有向视图传递正确的值,要么视图中的变量是错误的,要么是错误的视图......无论哪种方式,它都是不正确的。
打开App,查看更多内容
随时随地看视频慕课网APP