thinkphp框架中的foreach方法的正确使用方法。

按照视频上的代码敲完,出现不显示任何数据的情况。
自学小白,求各位帮忙,指点一二,感激不尽.....
如图所示:
我用的tp框架是3.2.3的
clipboard.png
搜索引擎已经设置成Smarty
clipboard.png
控制器中的方法
clipboard.png
这个是我没按照视频上写,但是这个依旧无法遍历数据,只能显示图片
clipboard.png
显示的结果
clipboard.png

视频的代码截图,按照截图上的代码敲完后,什么也不显示....
clipboard.png
clipboard.png

阅读 8k
4 个回答

assign那里反了

你为什么要删除我的评论呢,$this->assign('info',$info);应该这样写好吗!!!!!!!!!!!

感谢邀请。看了你的代码,很显然你的变量注册参数写反了。

给几点建议:

  • 使用原生PHP作为模板语言,一方面可以获得最好的性能,另一方面没有学习模板语法的成本。
  • 虽然TP的大写字母函数有点狗血,但还是推荐使用大字母方法实例化模型及其他操作(当然熟悉PHP基础语法很重要),因为大写字母会为你缓存数据提升性能。
  • 尝试看看常用的TP方法的源码。
  • 去看看PHP-PSR规范,编码规范及接口规范。
  • 最后,原生PHP基础一定要学扎实哟。

示例: 使用原生PHP作为模板语言

return [
      'TMPL_ENGINE_TYPE' => 'php'
];

示例:控制器中的方法

public function showList()
{
    $goods     = D('Goods');
      $info    = $goods->select();
  
      $this->assign('info', $info);
      $this->display();
}

示例:使用PHP作为模板语言

<?php foreach($info as $key => $val) { ?>
<tr id="product4">
    <td><?php echo $val['goods_id']; ?></td>
    <td><a href="#"><?php echo $val['goods_name'] ?></a></td>
    <td><?php echo $val['goods_number'] ?></td>
    <td><?php echo $val['goods_price'] ?></td>
    <td><img src="<?php echo $val['goods_src'] ?>" alt=""></td>
    <td><?php echo $val['goods_brand_id'] ?></td>
    <td><?php echo $val['goods_create_time'] ?></td>
</tr>
<?php } ?>

是不看起来也还可以,挺好读的。

用volist试试

<volist name="info" id="item">
<p>{$item.goods_name}</p>
</volist>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题