案例一:https://blog.csdn.net/haibo0668/article/details/78225178
控制器代码:
public function index(){
$sotitle=input('sotitle');
$sotype=input('sotype');
$limit=input('limit');
$limit=$limit?$limit:10;
$this->assign('sotype',$sotype);
$this->assign('sotitle',$sotitle);
$this->assign('limit',$limit);
//用户组列表
$group_rs=Db::name('auth_group')->order(['id'=>'desc'])->select();
//列表中读出分组中文标题
$i=0;
foreach($group_rs as $rsg){
$group_arr[$i]['id'] = $rsg['id'];
$group_arr[$i]['name'] =$rsg['title'];
$i++;
}
$group_arr1=json_encode($group_arr,JSON_UNESCAPED_UNICODE);
$group_arr1=str_replace('"','\'',$group_arr1);
$this->assign('group_arr',$group_arr1);
$this->assign('group_rs',$group_rs);
if($sotitle){
//模糊查询
if($sotype=="name" || $sotype==""){
$where = [
['name', 'like', "%".$sotitle."%"],
];
}else{
$where[$sotype] = $sotitle;
}
}
$rs=Db::name('admin')->where($where)->order(['id'=>'desc'])->paginate($limit,false,['query' => request()->param()]);
$page = $rs->render();
$this->assign('page', $page);
$this->assign('rs',$rs);
return $this->fetch();
}
所以需要:双引号替换成单引号
$group_arr1=json_encode($group_arr,JSON_UNESCAPED_UNICODE);
$group_arr1=str_replace('"','\'',$group_arr1);
$this->assign('group_arr',$group_arr1);
替换单引号的原因就是下面:
模板输出的时候:
[{"id":4,"name":"超级管理员"},{"id":3,"name":"yyy"},{"id":2,"name":"222"},{"id":1,"name":"gfhfh"}];
模板代码:
一定引入:<script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
<th lay-data="{field:'group_id', width:180,templet: '<div>{{gettitle(d.group_id,group_arr)}}</div>'}">所属用户组</th>
var group_arr = {$group_arr};
//console.log(group_arr)
function gettitle(id,arr){
var title;
$.each(arr, function (index, obj) {
if(obj.id==id){
title=obj.name;
}
});
if(title==null){
return "";
}else{
return title;
}
};