今天在修改一个thinkphp3.2编写的项目时 在用户编辑页面使用标签循环渲染城市后 下面的变量信息不展示了 见代码
控制器方法
// An highlighted block
$mod = M('user')->where("id={$id}")->find();
$city = M("area")->where("pid=".$mod['cid1'])->select();
$this->assign('mod',$mod);
$this->assign('city',$city);
$this->display("edit");
页面渲染
// An highlighted block
<div class="layui-input-inline" style="width: 152px;">
<select name="cid2">
<option value="">请选择市</option>
<volist name="city" id="vo">
<option value="{$vo.id}" <if condition="$vo['id'] eq $mod['cid2']">selected</if> >{$vo.name}</option>
</volist>
</select>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手机号:</label>
<div class="layui-input-inline">
<input type="text" name="mobile" lay-verify="string" autocomplete="off" class="layui-input" value="{$mod.mobile}">
</div>
</div>
发现代码走到城市循环输出后 下面的手机号 {$mod.mobile} 总是输出不出来
最后查看模板渲染缓存后发现
##页面缓存
<label class="layui-form-label"><span class="c-red">*</span>城市:</label>
<div class="layui-input-inline" style="width: 152px;">
<select name="cid1" class="layui-input" lay-verify="require" style="display:block;width: 150px;" onchange="city(this);">
<option value="">请选择省</option>
<?php if(is_array($cate)): $i = 0; $__LIST__ = $cate;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): **$mod** = ($i % 2 );++$i;?><option value="<?php echo ($vo["id"]); ?>" <?php if($vo['id'] == $info['cid1']): ?>selected<?php endif; ?>><?php echo ($vo["name"]); ?></option><?php endforeach; endif; else: echo "" ;endif; ?>
</select>
</div>
原来渲染变量 m o d 和 框 架 里 面 循 环 渲 染 的 mod 和框架里面循环渲染的 mod和框架里面循环渲染的mod变量冲突 被覆盖了