三元运算符。 && 不起作用。 Laravel、Blade

Ternary operator. && does not work. Laravel, Blade

我有一个 image Storage 存储来自用户个人页面的 images。图像的名称也存储在数据库中 users table 的 img 字段中。如果 DB 中有 name 并且 storage 中有 image,我想显示它,否则我想显示默认图像。我试过了,但是 && 不起作用。我想我做错了什么:

<img src="{{ ((Auth::user()->img) && (Storage::url('users/'.Auth::user()->img))) ? (Storage::url('users/'.Auth::user()->img)) : '/img/svg/laptop-house-solid.svg' }}">

原因在于不同类型的数据。在数据库中我有一个字符串,在 Storage 中有一个对象(如果我正确调用它)即图像,所以检查没有用。您可以使用 Storage::exist() facade 函数来检查图像是否存在。

<img src="{{ ((Auth::user()->img) && (Storage::disk('public')->exists('users/'.Auth::user()->img))) ? (Storage::url('users/'.Auth::user()->img)) : '/img/svg/laptop-house-solid.svg' }}">