Laravel数据库操作笔记

1. 快速获得记录条数
	$medalCnt = MedalUser::select(DB::raw('count(*) as medal_cnt'))
                ->where('uid', $this->uid)
                ->where('medal_id', $medalId)
                ->value('medal_cnt');
2. 减少某项值
   $affected = Wallet::where('uid', $this->uid)->where('coin_id', 12)
       ->decrement('total',$medal['exchange_num']);
   if (!$affected) {
       throw new \Exception('变更失败');
   }
3. 增加某项值
   $affected = MedalUserLiveness::where('uid',$this->uid)
       ->increment('base_liveness_cnt', $medal['liveness']);
   if (!$affected) {
       return '更新失败';
   }
4. 结合
 	$list = DB::table('medal_user_liveness')
      ->join('member', 'medal_user_liveness.uid', '=', 'member.uid')
      ->where('real_name_auth', $authCondition)
      ->whereIn('member.uid', $direct_invite_uids)
      ->orderByDesc('medal_user_liveness.liveness_total')
      ->select('medal_user_liveness.*', 'member.username', 'member.regtime', 'member.avatar')
      ->paginate($pagesize);

   return $this->success($list->getCollection());
5. update
   $affected = MedalUserLiveness::where('uid',$referrerUid)->update(
       ['league_liveness_cnt'=>$leagueLiveness, 'hero_liveness_cnt'=>$heroLiveness]);
   if (!$affected) {
       return '更新失败';
   }
6. 根据一个表插入多条数据
WalletCoin::valid()->get()->map(function($item)use($new_user){
                $new_user->wallet()->save(new Wallet(['uid'=>$new_user->uid,'coin_id'=>$item['id']]));
            });
 date("Y-m-d H:i:s")
 >2020-08-30 10:32:50
7.取某条记录的某个字段值
	$setted_value = Setting::where('id',50)->value('content');
	if (!$setted_value ){
	        return $this->error(0, '获取错误');
	    }
8. 记录存在与否检测
	if(Member::where('username',$data['username'])->exists()){
        return $this->error(1,'用户名已注册,可直接登录');
    }
    // 检查账户余额是否足够
    if(Wallet::where('uid',$this->uid)->where('total', '>=', $transNum)->doesntExist()){
        return $this->error(1,'余额不够');
    }
9. 分页
	$pagesize = 10;
    $walletLog = WalletCoinLog::where('uid',$this->uid)->where('coin_id',123)
        ->select(DB::raw('note,IF(value>0,1,0) as plus,value,inputtime'))
        ->orderByDesc('inputtime')
        ->paginate($pagesize);
    return $this->success($walletLog->getCollection());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值