前端传给后端数组,存入数据库得是字符串,中间用逗号分隔
这里主要用的是implode函数
//前传后,写入数据库(数组转换字符串,逗号隔开)
public function saveInfo()
{
$area = input('name');
$sort = input('sort');
//这里接受前端传过来的值
$leader= input('leader');
//implode将数组值转换为字符串,中间用逗号相隔开
$der=implode(',', $leader);
//&&主要取宏替换前面的值进行判断
if ($area && $sort) {
$rt=Db::name('area')->where('area',$area)->find();
if($rt){
return json([
'code' => 20001,
'message' => '该区域已存在',
]);
}else{
$data = [
'area' => $area,
'sort' => $sort,
'leader'=> $der
];
$res = Db::name('area')->save($data);
if ($res) {
return json([
'code' => 20000,
'message' => '添加成功',
]);
} else {
return json([
'code' => 20001,
'message' => '添加失败',
]);
}
}
} else {
return json([
'code' => 20001,
'message' => '请输入完整信息',
]);
}
前端获取后端传给前端的值,这里指的是把存入的"数组转换的字符串"变成”数组“在传给前端
这里主要用的是explode函数
//这个方法是getlist,也就是前端获取后端数据的
public function getList()
{
$page = intval(input('page', 1));
$pagesize = intval(input('size'));
$list = Db::name('area')->order('sort asc')->page($page, $pagesize)->select()->toArray();
$count = Db::name('area')->count();
foreach ($list as &$v) {
//用explode转换$list里面获取的leader字段,把里面的字符串去逗号,变成数组,注意是在foreach里面
$v['leader'] = explode(',', $v['leader']);
$v['accounts'] = Db::name('admin')->where('area', $v['area'])->value('username');
}
return json([
'code' => 20000,
'message' => '查询成功',
'count' => $count,
//直接返回$list,给data前端接受的leader就是一个数组
'data' => $list,
]);
}
个人理解,如果有不对的地方,请在评论区留言,谢谢!!!!
更多推荐
前端传后端,后端传前端,数组与字符串之间的转换。implode和explode
发布评论