2015-06-03 12 views
10

Questo è il codice nel mio controller:laravel errore 5 di sintassi, inaspettata 'estende' (T_EXTENDS)

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

} 

mio 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> 

E index.blade.php

<?php 

@extends('app') 

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

Questo è l'errore che ottengo:

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

Per favore aiuto.


soluzione elencati di seguito. Mentre il problema è stupido e facile da risolvere, è difficile trovare una risposta diretta tramite Ricerca Google. Quindi mantenendo questa domanda.

+1

5f3efcdeb3d9812b22b5491d0cba9f22 è la tua vista, quando esegui la tua app le visualizzazioni della lama verranno convertite in un file temporaneo php di esempio che contiene la tua visualizzazione in un normale linguaggio PHP. La vista temp è memorizzata in: 'storage/framework/views /' prova ad aprire il file '5f3efcdeb3d9812b22b5491d0cba9f22' e vedi cosa succede –

risposta

26

I tag <?php ?> non sono richiesti nei file .blade.php. Rimuovili e funziona.

(La sintassi lama non c'è bisogno di essere in tag PHP. È tuttavia possibile includere il codice PHP nei tag.)

0

Quando si utilizza @extends, deve essere il primo pezzo di codice nel file lama.

Uno spazio vuoto o una nuova riga vuota prima dello @extends genererà inoltre un errore.

1

I <?php ?> tag non sono necessari nel file lama laravel salvato con estensione .blade.php motore laravel template automaticamente analizzare i comandi della lama da questi file.

Ma se si desidera includere il codice php nel file blade che non fa parte dei comandi del motore blade, sarà necessario utilizzare i tag <?php ?>.

2

So che questo è un po 'vecchio ma il problema è stato chiaramente perso.

Nel file index.blade.php manca il tag di chiusura "?>".

La lama sytanx @extends, @section ecc ... deve trovarsi nel proprio html all'esterno di qualsiasi blocco di codice php.

Problemi correlati