前端传给后端数组,存入数据库得是字符串,中间用逗号分隔

这里主要用的是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