laravel blade включает ошибку – синтаксическую ошибку, неожиданный

Я использую Laravel 4 локально с EasyPHP 14.1. Я создал маршрут:

Route::get('/test', function() { return View::make('test'); }); 

макет (testlayout.blade.php):

 <!doctype html> <html> <head> <title></title> </head> <body> <div class="container"> @yield('container') </div> </body> </html> 

и вид (test.blade.php):

 @extends("testlayout") @section('container') <h1>Hello!</h1> @stop 

Он отлично работает, и я получаю «Привет!».

Но когда меняют свой макет, добавив include, вот так:

 <!doctype html> <html> <head> <title></title> </head> <body> <div class="container"> @yield('container') </div> @include('testfooter') </body> </html> 

с моим нижним колонтитулом (testfooter.blade.php):

 @section("testfooter") <div class="footer">2013-2014</div> @show 

У меня ошибка «синтаксическая ошибка, неожиданная» / «».

Код, созданный Laravel (найденный в app \ storage \ views), неверен:

 <!doctype html> <html> <head> <title></title> </head> <body> <div class="container"> <?php echo $__env->yieldContent('container') </div> <?php echo $__env->make('testfooter', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>; ?> </body> </html> 

Laravel забывает ;?> После yieldContent('container') и добавляет два ;?> yieldContent('container') ... render() . Я пробовал много вещей, но сейчас у меня нет никакой подсказки.

UPDATE1 Я переустановил новый Laravel и гость, что проблема остается прежней. Без @include это нормально, с @include у меня такая же ошибка снова и снова.

UPDATE2 и PROBLEM FIXED (спасибо @majimboo)! Это просто невероятно. Вся эта история не связана с кодом. Это проблема с текстовым редактором: Notepad ++ в Windows . По неизвестной причине и только для файлов somes он переключился с «редактирования / преобразования EOL / формат Windows» на «edit / EOL conversion / Mac format». И, судя по всему, Laravel не имеет формата Mac вообще! Итак, если вы используете Notepad ++ в Windows, убедитесь, что у вас есть: « EOL conversion / windows format »

Solutions Collecting From Web of "laravel blade включает ошибку – синтаксическую ошибку, неожиданный"

проблема в том, что файл включен.

Сначала, чтобы проверить, действительно ли проблема, удалите все внутри testfooter.blade.php затем откройте представление из браузера. Вы заметите, что больше нет ошибки.

Измените testfooter.blade.php на:

 <div class="footer">2013-2014</div> 

удалите @section("testfooter")@show .

Пример:

 <!-- app/views/header.blade.php --> <h1>When does the Narwhal bacon?</h1> <!-- app/views/footer.blade.php --> <small>Information provided based on research as of 3rd May '13.</small> 

Вы включаете его как:

 <!-- app/views/example.blade.php --> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Narwhals</title> </head> <body> @include('header') <p>Why, the Narhwal surely bacons at midnight, my good sir!</p> @include('footer') </body> </html> 

Проверьте это, чтобы узнать больше о лезвии.


Проблема, кажется, что-то еще, я просто хотел бы поделиться этим, если это может вам помочь:

Я использую Notepad ++ в качестве текстового редактора, и по какой-то странной причине он решил использовать формат «MAC» в качестве формата End-Of-Line (EOL). По-видимому, система Blade не справляется с этим. Используйте функцию преобразования (в блокноте ++: Редактировать -> Преобразование EOL), чтобы преобразовать в формат Windows, и он будет работать нормально …

Арьен

У вас есть следующее:

 @section("testfooter") <div class="footer">2013-2014</div> @show // <-- 

Измените его так:

 @section("testfooter") <div class="footer">2013-2014</div> @stop // <-- 

Обычно Laravel дает большой намек на проблему. Проблема может быть в ваших заявлениях о включении CSS или JS. Сначала убедитесь, что вы включили режим отладки laravel. Вот как это сделать.

  1. Config / app -> debug = true в строке 16
  2. Обновить страницу с ошибкой.

Я намеренно оставляю закрытие ')' файла css. Laravel FW показал, где эта ошибка, и она покажет вам аналогичную ошибку.

Надеюсь, это поможет.

В моем случае проблема была неисчерпаемой строкой в ​​некотором PHP в совершенно другой части файла, о которой жаловался Laravel. Я удалил его, удалив все в файле и добавив строки снова один за другим.

Проблема, которую я вижу, вы закрыли теги php дважды в одной области, но ни один в другой, попробуйте этот код

 <?php echo $__env->yieldContent('container'); ?> </div> <?php echo $__env->make('testfooter', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>