欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

ThinkPHP学习(四)volist标签高级应用之多重嵌套循环

程序员文章站 2022-06-02 08:47:49
...

Action代码:

  1. public function index(){
  2. $prod = I("get.prod_en");
  3. $id = I("get.id", 0, "int");
  4. if ($prod == ""){
  5. $serviceProduct = array();//多重循环遍历的数组
复制代码
  1. //数据保存在两张表中,这里通过循环初始化$serviceProduct数组
  2. $service = M("product_class")->order("oid ASC")->select();
  3. for ($i = 0; $i {
  4. array_push($serviceProduct, array("srvName"=>$service[$i]["pc_cn"], "product"=>M("product")->where("prod_class_id=".$service[$i]["pcid"])->order("oid ASC")->select()));
  5. }
复制代码
  1. //如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋
  2. 值,无论何种变量类型都统一使用assign赋值。
  3. $this->assign("serviceProduct", $serviceProduct);
  4. $this->display();
  5. }else{
  6. if ($id > 0){
  7. $this->display("detail");
  8. }else{
  9. $this->assign('prod_en', $prod);
  10. $clsList = M("question_class")->order("oid ASC")->select();
  11. $this->assign('clsList', $clsList);
  12. $qusList = M("question")->order("oid ASC")->select();
  13. $this->assign('qusList', $qusList);
  14. $this->display("list");
  15. }
  16. }
  17. }
复制代码
模板代码:

  1. {$sp.srvName}
  2. {$pd.prod_cn}
  3. |
复制代码
当使用多重嵌套循环时,需要为每一个volist指定key值,通过
复制代码
判断是否为数组中的最后一个元素。