函数 return 不调用 Laravel 5.8 中的其他条件
Function return doesnt call else condition in Laravel 5.8
我有一个大函数,它调用了很多其他发出 API 请求的函数
对于 BlackBoard,我的问题是,在这个主要功能中,我创建了我的用户并将他签到当前课程,但实际上我们遇到了这种情况:同一个用户已经在 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 方法 update/create:
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));
}
如果您不想重构代码,则应使用 try-catch 块。它的声音是你的 if 条件在 'createUser' 被调用时死亡。
而是尝试用这个来替换整个 if 语句。
try{
$userSalvo = $bd->createUser($user)
}catch(Exception $e){
$userSalvo = $bd->updateUser($user, $userId);
}
这是假设定义了 $user 和 $userId。
我有一个大函数,它调用了很多其他发出 API 请求的函数 对于 BlackBoard,我的问题是,在这个主要功能中,我创建了我的用户并将他签到当前课程,但实际上我们遇到了这种情况:同一个用户已经在 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 方法 update/create:
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));
}
如果您不想重构代码,则应使用 try-catch 块。它的声音是你的 if 条件在 'createUser' 被调用时死亡。
而是尝试用这个来替换整个 if 语句。
try{
$userSalvo = $bd->createUser($user)
}catch(Exception $e){
$userSalvo = $bd->updateUser($user, $userId);
}
这是假设定义了 $user 和 $userId。