8--よく遭遇するphpバックグラウンド判断

30690 ワード

値が既に存在するかどうかを判断する
 $banji = Db::name('banji')
         ->where('schoolid', $user['schoolid'])
         ->where('classname', $classname)
         ->find();
     //        
     if ($banji) {
         return error('       ');
     }

値がNULLかどうかを判断
 if (empty($classname)) {
            return error('        ');
        }

1つの値が配列に存在するかどうかを調べます.
      $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}]がバックグラウンドに伝わるのは,配列ではなく配列の形にする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);