首页 > 解决方案 > laravel 5.8 如何在 laravel 控制器中使用 if 和 else if 函数

问题描述

在 laravel 5.8 中,我试图在用户表状态列中传递更新的值,默认值为“PENDING”,如果我使用 update.blade.php 表单在“status”列中传递值“APPROVED”,

 DB::table('users')->where('id', $id)->increment('wallet', '1000' );

这段代码不需要工作。

否则我使用 update.blade.php 表单在“状态”列中传递值“拒绝”,这次是这段代码

DB::table('users')->where('id', $id)->increment('wallete', '1000' );

应该可以在用户表“钱包”列中存储值“1000”

如何在 laravel 5.8 控制器中使用 if、if else、else if 创建此逻辑查询

public function pan_status_update(Request $request, $id)
  {

      $pan_status_update = Pan::where('status','=','PENDING')->find($id);
      $pan_status_update['status'] = $request->status;
      $pan_status_update['manager_id'] = Auth::user()->id; 


      DB::table('users')->where('id', $id)->increment('wallete', '1000' );
      $pan_status_update->save();
  return redirect('Pan_request')->with('success','UPDATED SUCCESSFULLY .',);
  }

标签: laravel

解决方案


在这里,试试这个,它只会在状态设置为拒绝时更新,

public function pan_status_update(Request $request, $id)
  {

    $pan_status_update = Pan::where('id', $id)
                                ->where('status', 'pending')
                                ->first();
    if(!$pan_status_update){
     return redirect()->back()->withStatus('Not Found');
    }

    if($request->status == 'Approved'){ 
      //shouldn't work
    }elseif($request->status == 'Rejected'){
      DB::table('users')->where('id', $id)->increment('wallet', '1000' );
    }else{
     return redirect()->back();
    }
    return redirect('Pan_request')->with('success','UPDATED SUCCESSFULLY .',);

推荐阅读