【问题标题】:Laravel 4.2 blade: check if emptyLaravel 4.2刀片:检查是否为空
【发布时间】:2015-02-13 16:12:01
【问题描述】:

在 Laravel 刀片中你可以这样做:

{{ $variable or 'default' }}

这将检查是否设置了变量。我从数据库中获取了一些数据,并且这些变量总是设置的,所以我不能使用这种方法。

我正在寻找用于执行此操作的速记“刀片”功能:

{{ ($variable != '' ? $variable : '') }}

很难使用这段代码或代码来做这件事,因为我不知道如何用链接或类似的东西来做:

<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>

我试过了:

{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}

但是,它不起作用。而且,我想让我的代码尽可能短;)

谁能给我解释一下?

更新

我不使用 foreach,因为我从数据库中获取了一个对象(一所学校)。我将它从我的控制器传递到我的视图:

 $school = School::find($id);
 return View::make('school.show')->with('school', $school);

所以,我不想在每个 $ 变量(如 $school->name)周围创建一个 @if($value != ''){}

【问题讨论】:

    标签: php laravel blade


    【解决方案1】:

    试试这个:

    @if ($value !== '')
        {{ HTML::link($value,'some text') }}
    @endif
    

    【讨论】:

    • 确实,这是一个解决方案,而不是键入
    • @Marten 正如你上面所说,你的解决方案不会奏效。至少我的作品有效 :) 但我同意你的速记
    • @Marten 我建议您编辑您的问题并告诉我您的视图中有多少变量。也许使用foreach() 您的问题将得到解决
    • @Marten 你可以在一行上写 if 没有问题@if($value != '') {{ HTML::link($value, 'some text') }} @endif
    • @lukasgeiter,我将使用你的方法。对于没有
    【解决方案2】:

    我更喜欢 @unless directive 在这种情况下的可读性。

    @unless ( empty($school->website) )
        <a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
    @endunless
    

    【讨论】:

      【解决方案3】:

      使用 php 7,您可以使用空合并运算符。这是@m0z4rt 答案的简写。

      {{ $variable ?? 'default' }}
      

      【讨论】:

        【解决方案4】:
        {{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
        

        改成

        {{ ($school->website != '') ? '<a href="' . $school->website . '" target="_blank">' .  $school->website . '</a>' : '' }}
        

        或相同的代码

        {{ ($school->website != '') ? "<a href='$school->website' target='_blank'>$school->website</a>" : '' }}
        

        【讨论】:

          【解决方案5】:
          {{ isset($variable) ? $variable : 'default' }}
          

          【讨论】:

            【解决方案6】:

            我想知道为什么没有人谈论$variable-&gt;isEmpty() 它看起来比其他更好。可以像这样使用:

            @if($var->isEmpty())
                Do this  
            @else
                Do that  
            @endif
            

            【讨论】:

              猜你喜欢
              • 2021-11-02
              • 2015-12-15
              • 2019-01-10
              • 2019-05-12
              • 2021-01-13
              • 2016-04-02
              • 2013-12-23
              • 2020-02-04
              • 1970-01-01
              相关资源
              最近更新 更多