@extends('layout')laravel。刀片模板系统似乎不起作用

时间:2014-01-30 14:16:45

标签: php laravel

我尝试使用laravel的模板系统:blade但在使用文件users.blade.php中的以下代码时似乎无效:

@extends('layout')

@section('content')
Users! @stop

和浏览器,

 @extends('layout')

10 个答案:

答案 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.phpfoo.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)

默认情况下,Laravellayouts文件夹中有一个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保存您的来源。