Laravel 5.4 / Blade没有显示带有空格的空字符串变量:" "

时间:2018-06-07 14:24:36

标签: php laravel laravel-blade

这是一个奇怪的问题,因为它感觉很简单,但是它让我感到困惑。我有一个变量:$customer->PhoneWork当前为空,返回" "。在Blade模板中,我只想在它不为空时有条件地渲染它:

    @unless (empty($customer->PhoneWork))
      Work: {{ $customer->PhoneWork }}
    @endunless

问题是,虽然它现在似乎是空的,empty($customer->PhoneWork)是假的。我还尝试了is_null()!isset(),所有人都遇到了同样的问题。我在这里错过了什么?

3 个答案:

答案 0 :(得分:2)

根据documentation

  

确定变量是否为空

因此,如果变量为empty,则会返回true,如果不是,则会返回false

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

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

此检查现在说:如果$customer->PhoneWork(已裁剪)不为空

答案 1 :(得分:0)

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

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

您可能需要使用ctype_space($str)

答案 2 :(得分:0)

empty(trim($customer->PhoneWork))可以解决问题!它检查修剪后的字符串是否为空。