我有一个大函数,它调用了许多其他向 BlackBoard 发出 API 请求的函数,我的问题是,在这个主函数中,我创建了我的用户并将他签到当前课程,但实际上我们遇到了这种情况:同一用户已在 BlackBoard 中注册,因此我针对该特定情况创建了更新功能。但是那个 main 函数都在一个 try catch 块中,所以每次我调用该方法时:
$userSalvo = $bd->createUser($user)
并且用户已经存在于 BlackBoard 数据库中,他立即停止我的函数并调用 catch 块,显然得到异常,但我需要如果该用户已经存在,他从这个请求中恢复并转到下一个方法:
$userSalvo = $bd->updateUser($user, $userId);
我已经尝试将其放在 if 语句中,但它不能正常工作:
if($userSalvo = $bd->createUser($user))
{
dd('create');
$user->id = $userSalvo['id'];
}else
{
dd('update');
$userSalvo = $bd->updateUser($user, $userId);
$user->id = $userSalvo['id'];
}
任何人都知道我该怎么做?
这是我调用来更新/创建的 API 方法:
public function updateUser($user, $userId)
{
$user->dataSourceId = $this->dataSourceId;
return $this->bd->patch("/users/{$userId}", json_decode(json_encode($user), true));
}
public function createUser($user)
{
$user->dataSourceId = $this->dataSourceId;
return $this->bd->post("/users", json_decode(json_encode($user), true));
}