我的控制器中有以下代码。我想打印我的数据的数据..它应该是双重的forloop还是foreach?
控制器:
public function index()
{
$in_cart = array();
if (!isset($_SESSION['cartProducts'])){
$in_cart['list'] = "No Products";
}
else{
foreach ($_SESSION['cartProducts'] as $key => $value) {
$in_cart[$key] = $this->shopmod->get_one_data($key);
}
$cart['list'] = $in_cart;
}
$this->load->vars($cart);
$data['cart'] = $this->load->view('shop/cart', '', TRUE);
$this->load->view('layout/default', $data);
}
查看:
<?php if(is_array($list)): ?>
<?php foreach($list as $row):?>
<tr>
<td><?=$row->name?></td>
</tr>
<?php endforeach ?>
<?php endif;?>
但我有以下错误: 遇到了PHP错误 严重性:注意 消息:尝试获取非对象的属性 文件名:shop / cart.php 行号:18
任何帮助人? :(
答案 0 :(得分:1)
我看到你正在使用Code igniter(很好!)
我会执行以下操作以确保$ key正在使用'name'
public function index(){ foreach($ _SESSION ['cartProducts'] as $ key =&gt; $ value){ echo $ key; }}
然后
public function index(){ $ in_cart = array();
if (!isset($_SESSION['cartProducts'])){ $in_cart['list'] = "No Products"; } else{ foreach ($_SESSION['cartProducts'] as $key => $value) { $in_cart[$key] = $this->shopmod->get_one_data($key); } } $this->load->vars($cart); $data['cart'] = $this->load->view('shop/cart', '', TRUE); $data['list'] = $in_cart; $this->load->view('layout/default', $data); }
答案 1 :(得分:0)
PHP告诉你到底出了什么问题。
当name
语法专门为对象保留时,您正尝试访问$row
数组的->
属性。
要访问数组值,请使用方括号和键:<?=$row['name']?>
有用的提示要理解 - 你所做的是准等效于:7->name
,只要左值(7)不知道如何使用箭头语法。当左值是对象时保留它。不是整数,或者在您的情况下是数组。
你会得到这样的数据:
<? foreach($row['list'] as $r):?>
<tr>
<td><?=$r[0]->name;?></td>
</tr>
<? endforeach;?>