Странно поведение на Laravel 4 Blade

И така, имам този вид код за отпечатване на моята индексна страница:

class PageController extends MediaController {

protected $layout = 'layouts.main';

public function index_page() {
    $data = array();

    $data['title'] = 'Dynamic Title';
    $data['css_files'] = array(
        array('media'=>'all', 'file'=>'file1'),
        array('media'=>'all', 'file'=>'file2')
    );

    $this->layout->content = View::make('index', $data);
}

}

и моя main.blade.php:

<html>

<head>
    <title>@yield('title')</title>
</head>

<body>
    @yield('content')
    @yield('css_files')
</body>

</html>

и моя index.blade.php:

@section('title', $title)

@section('css_files')
    @foreach ($css_files as $css_file)
        <p>File: {{ $css_file->file }}, Media: {{ $css_file->media }}</p>
    @endforeach
@stop

@section('content')
    <h1>Rendered Successfully!</h1>
@stop

Заглавието се изобразява добре, но css файлът отпечатва това:

Файл: {{ $css_file->file }}, Медия: {{ $css_file->media }}

Файл: {{ $css_file->file }}, Медия: {{ $css_file->media }}

вместо това:

Файл: файл1, носител: всички

Файл: файл2, носител: всички

Може ли някой да обясни защо? Благодаря за помощта, съвсем нов съм в Blade.

--РЕДАКТИРАНЕ--

Вече реших проблема, случайно редактирам конфигурацията на синтаксиса на Blade

vendor\laravel\framework\Illuminate\view\compilers\BladeCompiler.php

от

protected $contentTags = array('{{', '}}');

    /**
     * Array of opening and closing tags for escaped echos.
     *
     * @var array
     */
    protected $escapedTags = array('{{{', '}}}');

to

protected $contentTags = array('{=', '=}');

    /**
     * Array of opening and closing tags for escaped echos.
     *
     * @var array
     */
    protected $escapedTags = array('{={', '}=}');

Така че трябваше да използвам {= вместо {{

Надявам се това да помогне на някого в бъдеще.


person user2002495    schedule 27.10.2013    source източник
comment
Защо трябваше да използвате {=? Обикновено папката на доставчиците не трябва да се променя, защото ако я актуализирате чрез композитор, вашите промени ще бъдат презаписани.   -  person Glad To Help    schedule 27.10.2013
comment
използван за комбиниране на blade с angular.js, трябваше да промени синтаксиса   -  person user2002495    schedule 28.10.2013
comment
Сега има идеален смисъл   -  person Glad To Help    schedule 28.10.2013


Отговори (1)


Липсва @stop под раздела със заглавието. Опитайте да го направите така

@section('title')
  {{ $title }}
@stop
person Glad To Help    schedule 27.10.2013