我尝试使用laravel的模板系统:blade
但在使用文件users.blade.php
中的以下代码时似乎无效:
@extends('layout')
@section('content')
Users! @stop
和浏览器,
@extends('layout')
答案 0 :(得分:7)
如果你在/app/views/layout.blade.php中有一个包含
的模板文件,这应该可行<p>Some content here</p>
@yield('content')
<p>Some additional content here</p>
然后在/app/views/user.blade.php中,内容
@extends('layout')
@section('content')
<p>This is the user content</p>
@stop
如果您致电return View::make('user')
,您应该拥有已编译的内容
<p>Some content here</p>
<p>This is the user content</p>
<p>Some additional content here</p>
我希望这有助于为您澄清事情。如果没有,您能提供模板文件位置和相关内容吗?
答案 1 :(得分:2)
在@extends之前删除额外的空格或任何内容(&#39; yourlayoutfile&#39;)。
它应该是在文件中呈现的第一件事。
我遇到了同样的问题并尝试了很多东西。突然我在@extends之前在文件的开头找到了一个空格。
删除了空间并且工作正常。
感谢。
格式:
@extends('layouts.default')
@section('content')
.....
@stop
---编辑----
如果这不起作用,请尝试:
复制文件中的所有内容,然后删除该文件。
创建一个新文件并将其另存为filename.blade.php
仅在保存文件后将内容粘贴到页面中。 保存更改并运行它。
这很有效。
谢谢。
答案 2 :(得分:1)
你的布局在哪里?
如果它在app/views/layouts
,那么它应该是
@extends('layouts.index')
(假设名称为index.blade.php)
例如:@extends('layouts.foo')
等于app/views/layouts/
中名为foo.blade.php
或foo.php
的文件。 (取决于你是否使用刀片)
答案 3 :(得分:1)
我有同样的问题。做的是: 1.在routes.php中
Route::get('about', 'AboutController@index');
这 AboutController是app / controllers中的控制器文件AboutController.php index是该控制器内的一个函数。
2.在app / controllers中创建AboutController.php
class class AboutController extends BaseController {
protected $layout = 'layouts.default';
$this->layout->content = View::make('pages.about');
}
您可以查看此参考:Defining A Layout On A Controller
答案 4 :(得分:0)
默认情况下,Laravel
在layouts
文件夹中有一个views
文件夹,即app/views/layouts
,在此文件夹中保留您的布局文件,即app/views/layouts/index.master.php
和如果你有类似的东西,你应该使用这样的东西:
@extends('layouts.master')
@section('content')
<p>Page Content</p>
@stop
这将从master.blade.php
文件夹继承/使用layouts
文件(作为布局),此处layouts.master
表示layouts/master.blade.php
。
在你的master.blade.php
档案中,你有这个
@yield('content')
因此,@section('content')
和@stop
之间视图中的数据/内容将被转储到您的布局@yield('content')
的位置。
您可以使用layout
文件的任何名称,如果它是layouts/main.blade.php
,那么您应该使用
@extends('layouts.main')
答案 5 :(得分:0)
确保你在 App.blade.php 中插入了 css 链接
对我来说默认情况下没有 css 文件的链接
在 app.blade.php 中插入以下链接
<link rel="stylesheet" href= "/css/app.css" >
现在它工作正常:)
答案 6 :(得分:0)
列出要确保的事项
正确给出文件名和路径
仔细检查 .blade.php 文件扩展名
layouts.admin.blade.php
<section class="content" style="padding-top: 20px">
@yield('content')
</section>
@extends('layouts.admin')
@section('content')
<p> this is Order index view</p>
@endsection
答案 7 :(得分:0)
试试这个!
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
答案 8 :(得分:-1)
让我们说你有&#39; master.blade.php&#39;和&#39; index.blade.php&#39;。 并且这两个文件都在views-&gt;主目录中。当你想在&index; index.blade.php&#39;中使用@extends时通过电话&#39; master.blad.php&#39; ,你应该在index.blade.php文件中写下这个语句:
@extends('home.master')
不
@extends('master')
答案 9 :(得分:-3)
只需使用编码UTF-8 without signature
保存您的来源。