2013-06-08 2 views
0

Я изучаю Laravel 3, но шаблон Blade не работает. Мой код кажется правильным, но все, что он отображает, - @layout('master'). Источник также содержит только этот текст. application\views\home\index.blade.php содержание:Laravel 3 лезвие шаблон не работает

@layout('master') 

@section('main') 
    {{ $greeting }} 
@endsection 

application\views\master.blade.php содержание:

<!doctype html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Hello world!</title> 
</head> 
<body> 
    <div id="container"> 
     @yield('main') 
    </div> 
</body> 
</html> 

и в routes.php:

Route::get('/, home', function() 
{ 
$greeting = "Hello world"; 
return View::make('home.index')->with('greeting',$greeting); 
}); 

Что может вызвать лезвие не работать? Я также попробовал Laravel 4 и изменил @layout на @extends, @endsection до @stop но такой же ситуация. Я получаю только @extends('master').

ответ

0

Не уверен ... но я думаю, что его, потому что у вас есть место в верхней части файла ....

@layout('master') 

должен быть непосредственно в верхней части файла для того, чтобы работать должным образом ... остальное он просто повторяет @layout («хозяин»), как слова на странице, если вы знаете, что я пробую сказать :)

+0

Нет, это наверху. Так же, как я показываю. – Kiyas

0

же на меня в L4 ... проверить кодировку вашего кода редактор! иногда некоторые скрытые символы находятся в начале файла. i переключился на «UTF-8 без спецификации»

+0

в переустановке L4 решила проблему. Но не знаю, в чем проблема с L3. – Kiyas

0

Просто удалите каждое пространство или EOL, CR, LF, Enter, \ n (или что-то еще) перед вашим кодом. Та же проблема в Laravel 4, я последовал за quick start шагом, на котором вы создаете представление. Я оставляю новую строку.

-New line here, and it brokes- 
@extends('layout') 

@section('content') 
    Users! 
@stop 

Снова удалить все, прежде чем @extends('layout') и это работает для меня !!