2017-10-27 23 views
1

私は現在使用していますLaravel 5.5と私は初心者です。私は私のサーバーを実行した後 - 私は構文解析エラー:予期しない構文エラー 'foreach'(T_FOREACH)[LARAVEL]?

Parse error: syntax error, unexpected 'foreach' (T_FOREACH)

を得るここに私のindex.blade.phpファイルが

<!doctype html> 
<html lang="<?php echo e(app()->getLocale()); ?>"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <title>Market</title> 

</head> 
<body> 
    <ul> 
     <?php 

      @foreach ($markets as $market) { 
       echo market.name; 
       <li> 
        <a href = {{ route('markets.show', $market) }}> 
         {{$market.name}} 
        </a> 
       </li> 
      } 

     ?> 
    </ul> 
</body> 

私は何をすべきでしょうか?私は他の同様の質問を見た - しかし、彼らは私を助けなかった。

答えて

1

ブレードテンプレートの正しい構文は次のとおりです。PHPタグ内の@foreachは物事を混合されて使用

<body> 
    <ul> 
     @foreach ($markets as $market) 
      {{ $market->name }} 
      <li> 
       <a href = {{ route('markets.show', $market) }}> 
        {{ $market->name }} 
       </a> 
      </li> 
     @endforeach 
    </ul> 
</body> 

https://laravel.com/docs/5.5/blade#loops

0

@foreachのようなブレードタグは、PHPの開始タグを必要とせず、そのままHTMLに挿入することができます。 Bladeエンジンはそれらを正しく解釈します。また

{{ }}タグを使用している場合

  • @endforeach
  • に冗長な方法で<?php echo e(); ?>を使用する必要が@foreach呼び出しを閉じないことを忘れないでください、ブレードは、出力は、コンテンツをエスケープします。
  • href属性値を二重引用符で囲むことをお勧めします。

次のようにあなたのindex.blade.phpファイルを再フォーマット:ブレードテンプレートエンジンの詳細については

<!doctype html> 
<html lang="{{ app()->getLocale() }}"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <title>Market</title> 

</head> 
<body> 
    <ul> 
     @foreach ($markets as $market) { 
      {{ market.name }} 
      <li> 
       <a href="{{ route('markets.show', $market) }}"> 
        {{$market.name}} 
       </a> 
      </li> 
     @endforeach 
    </ul> 
</body> 

を、official docsを見てみましょう。

関連する問題