2015-06-03 11 views
10

Jest to kod w moim kontrolera:laravel 5 Błąd składni, nieoczekiwane 'rozciąga' (T_EXTENDS)

class ArticlesController extends Controller { 
    public function index() 
    { 
     $articles = Article::all(); 
     return view('articles.index',compact('articles')); 
    } 

} 

My App.blade.php

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Title</title> 
     <meta charset="UTF-8"> 
     <meta name=description content=""> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     <!-- Bootstrap CSS --> 
     <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    </head> 
    <body> 
     <div class="container"> 
      @yield('content') 
     </div> 

     @yield('footer') 
     <!-- jQuery --> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
     <!-- Bootstrap JavaScript --> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 
    </body> 
</html> 

I index.blade.php

<?php 

@extends('app') 

@section('content') 
    <h1>Articles</h1> 
@stop 

jest to błąd, który pojawia się:

FatalErrorException in 5f3efcdeb3d9812b22b5491d0cba9f22 line 3: 
syntax error, unexpected 'extends' (T_EXTENDS) 

Proszę o pomoc.


Rozwiązanie poniżej. Problem jest głupi i łatwy do naprawienia - ciężko znaleźć prostą odpowiedź za pomocą wyszukiwarki Google. Stąd utrzymując to pytanie.

+1

5f3efcdeb3d9812b22b5491d0cba9f22 jest twój widok, gdy skończy swoje poglądy ostrze aplikacja Thea będzie przekonwertować do pliku php wich temp próbka zawiera swój pogląd w normalnym języku PHP. Widok temp przechowywane są w: 'storage/framework/views /' spróbuj otworzyć plik '5f3efcdeb3d9812b22b5491d0cba9f22' i zobacz co się stało –

Odpowiedz

26

Znaczniki <?php ?> nie są wymagane w plikach .blade.php. Usuń je i działa.

(Składnia ostrze nie musi być w znacznikach PHP. Można jednak zawierać kod PHP w tagach).

0

Podczas korzystania @extends, musi to być pierwszy kawałek kodu w pliku ostrza.

Pusta przestrzeń lub pusty nowa linia przed @extends również rzucać błąd.

1

W <?php ?> tagi nie są wymagane w pliku ostrza laravel zapisywane z rozszerzeniem .blade.php laravel szablonów Engine automatycznie analizować komendy ostrze z tych plików.

Ale jeśli chcesz dodać kod php do swojego pliku typu blade, który nie jest częścią poleceń silnika blade, musisz użyć znaczników <?php ?>.

2

Wiem, że jest trochę stara, ale problem wyraźnie minął.

W swojej index.blade.php złożyć brakuje zamykający znacznik "php?>".

Te ostrze @extends sytanx, @section etc ... powinno być w HTML na zewnątrz każdego bloku kodu php.