多条件搜索与事务回滚

通过多个条件对数组进行判断

##一个二维数组通过 一个数组几个条件来判断 [‘gender’ => ‘女’,‘name’ => ‘王向玉’]

DB::('users')->limit(10)->get(); 查询一个数组包对象

     foreach ($list as $item) {
        foreach ($keyValueArray as $k => $val) {
            if ($item->$k == $val) {
               如果list数组里面的键值等于转过来的那么就。。。。。。
            }
        }
    }

事务回滚

public function index()
{
// handle里面有try捕获异常,当不成功的时候直接抛出异常就可以回滚了因为异常里面写有回滚代码
TransactionService::handle(function () use ($param) {
r e s u l t = n e w U s e r s M o d e l ( ) ; i f ( U s e r C o n t r o l l e r : : i s N o t E m p t y ( result = new UsersModel(); if (UserController::isNotEmpty( result=newUsersModel();if(UserController::isNotEmpty(param, ‘name’))
r e s u l t − > s e t n a m e ( result->setname( result>setname(param[‘name’]);
if (UserController::isNotEmpty($param, ‘sex’))
r e s u l t − > s e t t s e x ( result->settsex( result>settsex(param[‘sex’]);
$arr = $result->save();
$dataarr = [‘name’=>‘广州’];
u p d a t e a r r = U s e r s M o d e l : : q u e r y ( ) − > w h e r e ( ′ i d ′ , 11 ) − > u p d a t e ( updatearr = UsersModel::query()->where('id',11)->update( updatearr=UsersModel::query()>where(id,11)>update(dataarr);
if (! u p d a t e a r r ∣ ∣ ! updatearr || ! updatearr∣∣!arr) {
throw new BusinessException(‘此次修改无效’);
}
});
}

/**

  • 封装好的事务回滚方法
    */

use Closure;
use Exception;
use Illuminate\Support\Facades\DB;

class TransactionService
{
/**
* 事务操作封装
* @param Closure $handle 事务操作
* @return mixed
* @throws Exception
*/
static public function handle(Closure $handle) {
DB::beginTransaction();
$result = null;
try {
$result = $handle();
DB::commit();
} catch (Exception $exception) {
DB::rollBack();
throw $exception;
}
return $result;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值