CDetailView输出数组 [ 新手入门 ]
CDetailView中有个字段是序列化后的字符串,默认输出是
a:3:{i:0;s:1:"S";i:1;s:1:"C";i:2;s:1:"O";}
如果attributes设置成
array(
'name'=>'groups',
'value'=> implode(',',unserialize($model->groups)),
),
输出结果是 S,C,O
问题是这个数组值是一个数组的下标,像
array(
'S'=>'Server',
'C'=>'Client',
'O'=>'Option'
)
怎么才能输出 Server,Client,Option
谢谢各位~
共 3 条回复
-
在view里写了
$valueArr=array( 'S'=>'Student', 'C'=>'Corporate officer', 'O'=>'Others', ); function extradata($arr,$valueArr){ $ret=''; foreach($arr as $v){ if($ret){$ret .=',';} $ret .=isset($valueArr[$v])?$valueArr[$v]:'NUL'; } return $ret; }
CDetailView改为
array( 'name'=>'groups', 'value'=>extradata(unserialize($model->groups),$valueArr), ),
这样可以输出
Student,Corporate officer,Others
这样虽然怪怪的,但是毕竟算是解决了在view里的显示,回到列表页面,使用了CGridView,自定义函数在这里没用,整个数据在CGridView内部循环处理,现在只能在列表页隐藏这个字段。
唉,学艺不精~
cpass 北京
注册时间:2011-12-23
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱240
- 威望0
- 积分240