2017-03-28 16 views
-1

私のforeachループ内でif/elseステートメントを使用しようとしています。 DomDocumentではdescriptionタグとdescriptionタグの内側を探しています。Laravel foreach内のElseステートメント

これは問題なく動作します。 descriptionタグがあると、descriptionタグの内容を表示します。 descriptionタグがない場合は、No description found No description found No description found No description foundと表示されます。なぜ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によると:

私はメタタグDOMDOCUMENTとLaravel 5.4

を使用してい

私はあなたと同じコードを書きました。しかし、唯一の問題は、「何も見つからない」ということです。 descriptionタグが見つかったとしても、descriptionタグinitと "No description found"が表示されます。

コントローラに$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 
+0

のようなものを願っています{{$ノード}}が何を与えるのでしょうか? – pseudoanime

+0

あなたのループには3つの項目があり、3つの項目には説明がありませんので、「説明が見つかりません」というメッセージが3回表示されます – Muthu17

+0

@pseudoanimeお願いします。私は自分の投稿を更新しました! – itvba

答えて

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 
+0

自分の投稿を変更しました。あなたはそれらを見てみることができますか? – itvba

+0

{!!を渡すべきではありません。 $ showErrorMessage == 1; !!}、 そのはず {!! $ showErrorMessage = 1; !} – Muthu17

+0

変数に値を代入するために==を与えるべきではありません。条件を調べるときにのみ==を使うべきです。 – Muthu17

関連する問題