Так что я пытаюсь сделать подробную страницу продукта, связанную из списков продуктов. Я уже настроил маршруты. Но на странице говорится об ошибке с неопределенной переменной 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);
}
public function view($kode_produk = NULL)
{
$data['produkdet'] = $this->ProdukList_model->get_produk($kode_produk);
if (empty($data['produkdet'])) {
show_404();
}
$this->load->view('user/view', $data); <!--line 19-->
}
}
попытался добавить true после $ data, чтобы быть $this->load->view('user/view', $data, true);
и на нем отображается пустая белая страница.
модель ProdukList_model.php
<?php
class ProdukList_model extends CI_Model
{
public function __construct() {
$this->load->database();
}
public function get_produk($kode_produk = FALSE)
{
if($kode_produk === FALSE)
{
$query = $this->db->get('tb_produk');
return $query->result_array();
}
$query = $this->db->get_where('tb_produk', array('kode_produk' => $kode_produk));
return $query->row_array();
}
}
routes.php
$route['ProdukList/(:any)'] = 'ProdukList/view/$1';
$route['default_controller'] = 'Dashboard';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
autoload.php
$autoload['model'] = array('ProdukList_model');
Что проблема?