Laravel:如何隐藏刀片语句?

时间:2016-09-19 19:32:50

标签: laravel laravel-4

我在刀片中设置变量$registered$paid。这导致显示输出的值。如何隐藏输出?

刀片:

  @foreach( $user->attendees as $attendee )
          {{
            $registered = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->registered: 0;
            $paid = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->paid: 0;
          }}
  @endforeach

HTML

1 1 0 0 0 0 0

2 个答案:

答案 0 :(得分:1)

Blade是一个模板引擎,因此它不希望你定义变量,它希望已经定义了这些变量。

{{ data }}相当于Blade 4中的<?php echo data ?>和Blade 5中的<?php echo htmlentities(data) ?>。所以是的,这不会像预期的那样有效。

但是,您可以在Blade模板中使用标准PHP标记:

  @foreach( $user->attendees as $attendee )
          <?php
            $registered = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->registered: 0;
            $paid = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->paid: 0;
          ?>
  @endforeach

答案 1 :(得分:0)

刀片花括号不用于执行任何旧的PHP - 它们旨在用于输出(即显示事物)。你必须在php标签中包含你的代码:

@foreach( $user->attendees as $attendee )
      <?php
        $registered = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->registered: 0;
        $paid = ($attendee_registered = $program->attendees->find($attendee))? $attendee_registered->pivot->paid: 0;
      ?>
@endforeach

无论如何在控制器中执行逻辑而不是模板是一种好习惯,这样可以减少模型,视图和控制器之间的依赖关系。这使得视图可以重复使用,并使所有内容保持逻辑上分离,这样您就不必在想要调整内容时搜索HTML。