Laravel如果Else在foreach内部发表声明

时间:2017-03-28 11:10:42

标签: if-statement foreach domdocument laravel-blade

我试图在foreach循环中使用if / else语句。 使用DomDocument,我试图找到描述标签和描述标签的内部。

这很好用。当有描述标记时,它会显示描述标记内的内容。如果没有描述标记,则显示:No description found No description found No description found No description found。为什么它会显示错误四次?我该如何解决这个问题?

我使用 DomDocument和Laravel 5.4

元标记:

$meta = $dom->getElementsByTagName('meta');

我的代码:

@foreach ($meta as $node)
  @if($node->getAttribute('name')=='description') 
    {{$node->getAttribute('content'), PHP_EOL}}
      @else 
       {{'No description found'}}
  @endif
@endforeach

编辑,根据Muthu17:

我差不多写了与你相同的代码。但唯一的问题是:它显示"没有找到描述"每时每刻。即使它找到了描述标签,它也会显示描述标签init和"没有找到描述"。

我已在我的控制器中宣布$showErrorMessage = 0;

@foreach ($meta as $node)
 @if($node->getAttribute('name')=='description') 
  {{$node->getAttribute('content'), PHP_EOL}}
   @else
    {!! $showErrorMessage == 1; !!}
   @endif
@endforeach

@if($showErrorMessage = 1)
 {{'No description found'}}
@endif

1 个答案:

答案 0 :(得分:0)

希望你看起来像这样

<?php $showErrorMessage = 0; ?>
@foreach ($meta as $node)
  @if($node->getAttribute('name')=='description') 
    {{$node->getAttribute('content'), PHP_EOL}}
      @else 
       <?php $showErrorMessage = 1;?>
  @endif
@endforeach

@if($showErrorMessage == 0)
 {{'No description found'}}
@endif