Laravel Blade 如何对 null 或 empty 使用 if 语句

Laravel Blade how to use if statement for null or empty

在Blade模板引擎中,如何使用"if"判断null或empty?

{{{ Auth::user()->age }}}

您可以按照下面的方式进行

    @if (empty(Auth::user()->age))
      // your if code
    @else
     //  your else code
    @endif

您还可以使用:

{{ Auth::user()->age or 'Age not provided' }}

所以你会有更干净的blade模板

这对我有用:

{ Auth::user()->age ?: 'Age not provided' }}

就我而言,当我使用 HeidiSQL 作为数据库管理器时,我必须保证列字段确实为 NULL。为此,我用鼠标右键单击该字段,单击 "Insert value",然后单击 "NULL"。 (与 Shift+Ctrl+N 相同)。一开始,我只是在字段上输入 NULL,我猜这是一个字符串,所以它总是 "truthy",而不是 NULL。这样做为我解决了问题,甚至写 {{ Auth::user()->age }}.

总结 Jorge 和 Razi 的回答,最简洁的方法是:

{{ Auth::user()->age ?? 'Age not provided' }}

还有这个:

{{ Auth::user()->age ?: 'Age not provided' }}

但是这个 没有 工作(我在 Laravel 8,这只适用于较低的 Laravel 版本):

{{ Auth::user()->age or 'Age not provided' }}

如果您尝试最后一种方法,它 returns 1 而不是您想要的。

同时检查这个问题:Check if variable exist in laravel's blade directive