Laravel如何从软删除中获取关联数据?

3

我有两张表,

user
intern

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

所以当我像这样找到用户时:

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

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

Trying to get property of non-object

我该如何修复这个问题?

每个被删除的用户都一定有一个实习生吗?两个表格上都有软删除列吗? - Jeemusu
是的,我知道,那不是问题。 - Jamie
那是回答哪个问题的? - Jeemusu
对于这两个问题,答案都是肯定的。 - Jamie
在这种情况下,你可能需要执行 $user->intern->withTrashed(); 因为你的实习生表也使用了软删除功能。 - Jeemusu
2个回答

0

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

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

0

检查用户是否存在。如果存在,执行您想要的操作。

以下是代码

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接