2013-10-27 2 views
1

Итак, у меня есть такой код, чтобы напечатать мой указательный страницы:Laravel 4 клинка странное поведение

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-}} Носитель: {{$ css_file-> СМИ}}

Файл: {{$ css_file-> файл}} Носитель: {{$ css_file-> СМИ}}

вместо этого:

файл: file1, медиа: все

файл: file2, медиа: все

Может ли кто-нибудь объяснить, почему? Спасибо за помощь, я очень новичок в Blade.

--EDIT--

Я уже решил эту проблему, я случайно изменить конфигурацию синтаксиса клинка в

поставщика \ Laravel \ Framework \ Осветите \ вид \ компиляторы \ BladeCompiler.php

из

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

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

к

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

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

Так что я должен был использовать {= вместо {{

Надеются, что это поможет кому-то в будущем.

+0

Зачем вам приходилось использовать '{='? Обычно папку поставщиков не следует изменять, потому что если вы ее обновите с помощью композитора, ваши изменения будут перезаписаны. –

+1

, используемый для объединения лезвия с угловым.js, пришлось изменить синтаксис – user2002495

+0

Теперь это имеет смысл –

ответ

1

Вам не хватает @stop ниже раздела заголовка. Попробуйте сделать это так:

@section('title') 
    {{ $title }} 
@stop 
+0

Спасибо, что я уже решил проблему, см. Раздел редактирования – user2002495

Смежные вопросы