8--常遇到的php后台判断

判断值是否已经存在
 $banji = Db::name('banji')
         ->where('schoolid', $user['schoolid'])
         ->where('classname', $classname)
         ->find();
     //看班级名是否存在
     if ($banji) {
         return error('班级名称已存在');
     }
判断值是否为空
 if (empty($classname)) {
            return error('班级名称不能为空');
        }
一个值查是否存在于数组中
      $classids = Db::name('banji')
            ->where('schoolid', $this->user['schoolid'])
            ->column('classid');
//        判断一个值是否在数组中 in_array
        if (!in_array($classid, $classids)) {
            return error('编号错误');
            exit();
        }
column查找 一个字段,判断2者是否相等
    $ifcreator = Db::name('banji')
        ->where('schoolid', $this->user['schoolid'])
        ->where('classid', $classid)
        ->column('creator');

    if ($ifcreator[0] !== $this->user['openid']) {
        return error('您不是创建人!');
        exit();
    }

查找没有的值用not in
//查找banji中的没有classid编号的 信息
   $data = Db::name('banji')
       ->alias('b')
       ->join('__USER__ u', 'u.openid=b.creator') //创建者
       ->field('b.classid,b.classname,b.teachercount,b.studentcount,b.time,u.name')
       ->where('b.schoolid', $schoolid)
       ->where('b.classid', 'not in', $classid)
       ->select();
查不为空
 //查找班级里是否有学生
    $ifhas = Db::name('banji_account')
        ->where('schoolid', $this->user['schoolid'])
        ->where('classid', $classid)
        ->where('role', 'student')
        ->select();

    if ($ifhas !== []) {
        return error('该班级已有学生加入');
        exit();
    }
修改某一字段的值update / setField
 		Db::name('banji')
     ->where('classid', $classid)
//    ->update(['classname' => $classname]);
      ->setField('classname', $classname);
     return success('班级名修改成功');
value 某一字段的值
 $count = Db::name('banji')
      ->where('classid', $classid)
      ->value('teachercount');
Modal模型
    $kd = new KaoqinDetails();
    $kd->allowField(true)->saveAll($chucount1);
    return success('更新完毕');
use app\mini_api\model\KaoqinDetails;
//保存考勤
    public function save()
    {
        $classid = input('post.classid');
        $tag = input('post.tag');
        //总学生人数
        $zcount = Db::name('banji_account')
            ->where('classid', $classid)
            ->where('role', 'student')
            ->count();
        //出勤学生人数
        $chucount1 = input('post.data');
        $chucount1 = json_decode($chucount1, true); //收到的是json字符串

        $chuqin_count = 0;
        foreach ($chucount1 as $row) {
            if ($row['stateid'] == 1) {
                $chuqin_count++;
            }
        }
        $account = $this->user['openid'];
        $data = [
            'openid' => $account,
            'classid' => $classid,
            'schoolid' => $this->user['schoolid'],
            'tag' => $tag,
            'count' => $zcount,
            'chuqin' => $chuqin_count
        ];
        $kqid = Db::name('kaoqin')->insertGetId($data);


        $kd = new KaoqinDetails();
        foreach ($chucount1 as &$row) {
            $openid1 = Db::name('user')
                ->where('id', $row['id'])
                ->field('openid')
                ->find();
            $row['kqid'] = $kqid;
            $row['openid'] = $openid1['openid'];
//            $row['stateid'] = $stateid;
            $row['classid'] = $classid;
            unset($row['id']);
        }
        $kd->allowField(true)->saveAll($chucount1);
        return success('保存成功');
    }

json

string(45) “[{“id”:72,“stateid”:4},{“id”:73,“stateid”:1}]”
传到后台的是这样的json字符串,而不是数组,要把它变成数组的形式
array(2) { [0]=> array(2) { [“id”]=> int(72) [“stateid”]=> int(4) } [1]=> array(2) { [“id”]=> int(73) [“stateid”]=> int(1) } }

$chucount = input('post.data');
$chucount = json_decode($chucount1, true); 

猜你喜欢

转载自blog.csdn.net/xu_ze_qin/article/details/107039726