现有一数据表:
spec_info对应的字段有spec_info_id,spec_id,spec_info_name,
现在已经知道spec_info_id可以从数组中读取出来,但是,其显示是数值。现在,想通过spec_info_id直接从YII中对应的模型中取出spec_info_name进行显示的代码片段如下:
<ul class="list"> <?php if(!empty($list)) { ?> <?php foreach($list as $k=>$v) { ?> <li> <div class="top"><i class="select selected" value="<?php echo $k;?>"></i></div> <div class="mid"> <div class="lt"><img src="<?php echo CHtml::encode(TblGoods::model()->findByPk($k)->goods_small_pic); ?>" alt="" /></div> <div class="rt"> <h5>商品名称:<?php echo $v['name']; ?></h5> <span>单价:<em><?php echo $v['shop_price']; ?></em></span> <span>颜色:<em><?php echo CHtml::encode(SpecInfo::model()->findByAttributes(array('spec_info_id'=>$v['color']))->spec_info_name); ?></em></span> <span>尺寸:<em><?php echo CHtml::encode(SpecInfo::model()->findByAttributes(array('spec_info_id'=>$v['size']))->spec_info_name); ?></em></span> </div> </div> <div class="btm"> <span>共计:<em><?php echo $v['shop_price']*$v['num']; ?></em></span> <span> <label>数量:</label> <input id="<?php echo $k; ?>" class="changenums" type="text" name="num" value="<?php echo $v['num']; ?>" class="num" /> </span> <span id="<?php echo $k; ?>" class="dele"><a href="javascript:void(0);"><img src="<?php echo IMG_URL; ?>dele.png" alt="删除" /></a></span> </div> </li> <?php }} else { ?> <li>您的购物车已清空</li> <?php } ?> </ul>
这里,使用了CHtml::encode()方法参数说明:
<?php echo CHtml::encode(SpecInfo::model()->findByAttributes(array('spec_info_id'=>$v['color']))->spec_info_name); ?>
SpecInfo::model()->findByAttributes(array('spec_info_id'=>$v['color']))->spec_info_name表示,从数据模型中取得指定属性的数据对象,然后取出要显示的值,放进CHtml::eccode()中就可以直接显示了。