Laravel从softdelete获取关系


Laravel get relation from softdelete

我有两张表,

user
intern

一个用户belongsTo是实习生,一个用户间hasOne。我的问题是,当我软删除一个user记录和相关的intern记录时。我想恢复它,我再也找不到相关的实习生了。

所以当我发现用户是这样的:

$user = user::onlyTrashed()->find($userId);

然后说$user->intern结果为空,因为它找不到intern

Trying to get property of non-object

我该怎么解决这个问题?

检查用户是否存在。如果是,做你想做的任何事。

这是代码

$user = user::onlyTrashed()->find($userId);
if(!is_null($user)) {
  echo $user->intern;
} else {
  echo 'User does not exist!';
}

要从用户对象中获取软删除的intern对象,请尝试以下操作:

$user->intern()->withTrashed()->get()->first()