И така, имам този вид код за отпечатване на моята индексна страница:
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 Glad To Help   schedule 27.10.2013