【发布时间】:2017-12-02 04:15:24
【问题描述】:
我想删除某个用户,如果该用户有头像,我也想删除该头像。所以我喜欢这样:
public function destroy($id)
{
$user = User::findOrFail($id);
if ($user && $user->profile->avatar){
Storage::delete($user->profile->avatar);
}
User::destroy($id);
return back();
}
但是当我这样做时,当用户在头像表中没有任何记录时,它会给我一个这样的错误:
"Trying to get property of non-object"
那么是什么让我得到这个错误,我该如何解决它。谢谢。
【问题讨论】:
-
$user->profile可能为 null ...尝试将 null 用作对象,会出现该错误...您必须检查 null -
“试图获取非对象的属性”在哪一行?
-
如果。我认为它在 user->profile 因为用户没有头像。
-
@lagbox 是的,我想是的。我做 if 只是为了确保我没有得到那个错误,但仍然
-
因为你没有检查
null...你只是跳过$something->something->something->something->something这些属性中的任何一个都可能返回null,整个事情都会出错。
标签: laravel laravel-5 eloquent laravel-storage