1

我正在创建一个 API 控制器函数,该函数只有在我将在请求对象中获取test_id时才会执行,否则不会执行。我能够访问请求数据包并且能够在其中看到 test_id 属性。我已经尝试了几种方法,但我无法检查它。这是我的控制器功能。我尝试使用 try catch 块,它显然输出 500 错误

ErrorException:未定义的属性:文件 C:\xampp\htdocs\backendAPI\app\Http\Controllers\API\TestUploadController.php 中的 stdClass::$test_id

我已经解决了这个问题并尝试了两种方式(isset()和property_exists()),但没有帮助我。即使我尝试了 echo/die() 他们都没有返回任何东西。

public function addReadingTestData(Request $req){
        $module = 1;
        $request = $this->getRequestData($req);
        $isTestIdPResent = false;
         try{
             if($request->test_id){
                 $isTestIdPResent = true;
             }
         }
         catch(Exception $e){  
             $this->sendBAdRequestResponse('no test id');
         }
        if($isTestIdPResent){
            foreach($request->question as $ques){
                echo $ques->description."<br>";
                echo $ques->right_answer."<br><br>";
                echo implode($ques->possible_answers,',');
                echo "\n";
            }
        }else{
            return $this->sendBAdRequestResponse('Test Id does not exist.');
        }
    }

public function getRequestData($request){
        return json_decode($request::createFromGlobals()->getContent());
    }

public function sendBAdRequestResponse($errors){
        return response()->json(['error'=>$errors], 400);
    }

4

1 回答 1

0

使用 laravel 验证来检查$req.

你怎么能做到这一点?

在这个答案中找到它

https://stackoverflow.com/a/62589783/9579653

于 2020-07-05T11:01:39.453 回答