Php Laravel 5.4/Blade未显示带空格的空字符串变量&引用;

Php Laravel 5.4/Blade未显示带空格的空字符串变量&引用;,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,这是一个奇怪的问题,因为它感觉很简单,但唉,它让我卡住了。我有一个变量:$customer->PhoneWork,当前为空,返回“”。在Blade模板中,我希望仅当它不为空时才有条件地渲染它: @unless (empty($customer->PhoneWork)) Work: {{ $customer->PhoneWork }} @endunless 问题是,尽管它现在看起来是空的,empty($customer->PhoneWork)是假的。我还尝

这是一个奇怪的问题,因为它感觉很简单,但唉,它让我卡住了。我有一个变量:
$customer->PhoneWork
,当前为空,返回
“”
。在Blade模板中,我希望仅当它不为空时才有条件地渲染它:

    @unless (empty($customer->PhoneWork))
      Work: {{ $customer->PhoneWork }}
    @endunless
问题是,尽管它现在看起来是空的,
empty($customer->PhoneWork)
是假的。我还尝试了
is\u null()
!isset()
和所有人都遇到相同的问题。我错过了什么

根据:

确定变量是否为空

因此,如果变量为
它将返回
,如果不是,它将返回

因此,您需要更改该值并反转检查:

@if (!empty(trim($customer->PhoneWork))

此检查现在显示:如果
$customer->PhoneWork
(已修剪)不是空的

如果我理解正确,则需要在字符串包含空字符时执行操作。所以

函数
为空($var)
等于
!isset($var)|$var==false


您可能需要使用
ctype\u space($str)
empty(trim($customer->PhoneWork))
来完成这个任务!它检查修剪后的字符串是否为空。

如果值中有空格,则它不是空的。这仍然返回false。有
ctype_space()
,但我不应该总是依赖于它是一个空白问题。该值当前是一个带有一个空格的字符串:
“”
的逻辑!空(trim($customer->PhoneWork))
是有意义的,但是它在刀片模板中没有正确执行。当当前的目标是确定
@except
的值为真时,它仍然返回false。如果继续使用except,则需要删除
(不是)。是的<代码>!empty(trim($customer->PhoneHome))
返回true,当前有一个电话号码字符串。然后它就不显示了,但是当然!它只需要
为空(trim($customer->PhoneWork))
。然后检查
trim($customer->PhoneWork)
是否为空。确实如此。OP提到他们不想依赖
ctype\u space