第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Laravel 中處理服務(wù)器端異常

如何在 Laravel 中處理服務(wù)器端異常

萬(wàn)千封印 2022-10-22 16:46:14
如何處理 Laravel 上的服務(wù)器端異常?我正在創(chuàng)建一個(gè)更新 API,并且我傳遞了一個(gè)錯(cuò)誤的值來(lái)處理異常,但我無(wú)法使用 try-catch 塊捕獲該錯(cuò)誤。有人能幫我嗎?下面是代碼:{"user_id" : "15835943395e63bb63c449d","changes" :{    "username" : "new username",    "name" : "new name",    "statuss" : "inactive"}}所以如您所見(jiàn),我正在嘗試傳遞一個(gè) Invalid 字段,即status實(shí)際是status。這是我處理此問(wèn)題的代碼:try{            $json = json_decode($changes,true);            $update = 'SET ';            $columns = [];            $values = [];            $pdo = DB::connection()->getPdo();            foreach ($json as $key => $value) {                $columns[]=$key;                $values[]=$value;                $update .= $key . '=?,';            }            $update = substr($update, 0, -1);            $sql = "update users ".$update." where user_id='".$request->input('user_id')."'";            $sth = $pdo->prepare($sql, array(\PDO::ATTR_CURSOR => \PDO::CURSOR_FWDONLY));            $sth->execute($values);        }        catch (Exception $e) {            echo $e;        }但我沒(méi)有得到郵遞員的任何東西。這是快照:
查看完整描述

2 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

捕獲任何sql語(yǔ)法或查詢錯(cuò)誤的最簡(jiǎn)單方法是Illuminate\Database\QueryException在為查詢提供閉包之后捕獲:


try { 

   $json = json_decode($changes,true);

        $update = 'SET ';

        $columns = [];

        $values = [];

        $pdo = DB::connection()->getPdo();

        foreach ($json as $key => $value) {

            $columns[]=$key;

            $values[]=$value;

            $update .= $key . '=?,';

        }

        $update = substr($update, 0, -1);

        $sql = "update users ".$update." where user_id='".$request->input('user_id')."'";

        $sth = $pdo->prepare($sql, array(\PDO::ATTR_CURSOR => \PDO::CURSOR_FWDONLY));

        $sth->execute($values);

} catch(\Illuminate\Database\QueryException $ex){ 

  dd($ex->getMessage()); 

  // Note any method of class PDOException can be called on $ex.

}

如果有任何錯(cuò)誤,程序?qū)ie(var_dump(...))根據(jù)需要執(zhí)行任何操作。


\注意:對(duì)于命名空間,如果類不作為use語(yǔ)句包含,則需要首先。

另供參考:Laravel 6.x API - 查詢異常


查看完整回答
反對(duì) 回復(fù) 2022-10-22
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

雖然我是@Ronak 對(duì) SQL 端的回答的粉絲,但如果您想在執(zhí)行任何 SQL 之前捕獲錯(cuò)誤,您可以使用內(nèi)置的 validate 方法在執(zhí)行代碼之前檢查 API 參數(shù)。這樣做的好處是,您不僅可以要求存在哪些參數(shù),還可以要求該值應(yīng)該是什么 -在這里查看更多信息。


在你的控制器中:


public function validateRequest(Request $request) 

{

    $rules = ['status' => ['required', Rule::in(['inactive', 'active'])]];

    $messages = ['status' => 'Status is a required parameter and must be either inactive or active'];

    $this->validate($request, $rules, $messages);

}

然后在你的 try 塊中


try {

     $this->validateRequest($request)

     // ... rest of code goes here

} catch (Exception $e) {

     return response()->json($e->getMessage(), 200); // response()->json() is a facade to return a JSON response 

}


查看完整回答
反對(duì) 回復(fù) 2022-10-22
  • 2 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)