我正在尝试使用Laravel建立一个网站,但是我遇到了一些基础问题,而文档并没有涵盖这些问题。
在这种情况下,我看到文档说我可以通过使用@include('view.name')
将一个视图包含在另一个视图中。那么,view.name是什么?它保存在哪里?我尝试创建一个名为app/views/view.name.blade.php
的文件,但它没有被读取。文件名如何映射到blade名称?
我正在尝试使用Laravel建立一个网站,但是我遇到了一些基础问题,而文档并没有涵盖这些问题。
在这种情况下,我看到文档说我可以通过使用@include('view.name')
将一个视图包含在另一个视图中。那么,view.name是什么?它保存在哪里?我尝试创建一个名为app/views/view.name.blade.php
的文件,但它没有被读取。文件名如何映射到blade名称?
你可以使用Blade模板引擎:
@include('view.name')
view.name'会存在你的主视图文件夹中:
'// for laravel 4.X
app/views/view/name.blade.php
// for laravel 5.X
resources/views/view/name.blade.php
另一个例子
@include('hello.world');
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
另一个例子
@include('some.directory.structure.foo');
将显示以下视图
// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php
// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php
app/views
文件夹或Laravel 5.x中的resources/views
文件夹。
补充说明:
如果您想传递参数:@include('view.name', array('paramName' => 'value'))
然后,您可以在视图中这样使用值:<p>{{$paramName}}</p>
编辑:以下是2014年首选的解决方案。如今您应该使用@include
,如其他答案中提到的那样。
Laravel视图中使用点作为文件夹分隔符。 例如,我有这段代码:
return View::make('auth.details', array('id' => $id));
该语句指向app/views/auth/details.blade.php
要在视图中包含一个视图,您可以这样做:
文件:layout.blade.php
<html>
<html stuff>
@yield('content')
</html>
文件:hello.blade.php
@extends('layout')
@section('content')
<html stuff>
@stop
从 Laravel 5.6 开始,如果您有这种结构并且想在子文件夹中包含另一个 Blade 文件:
|--- views
|------- parentFolder(文件夹)
|---------- name.blade.php(Blade 文件)
|---------- childFolder(文件夹)
|-------------- mypage.blade.php(Blade 文件)
name.blade.php
<html>
@include('parentFolder.childFolder.mypage')
</html>
@include('hello.world')
// for laravel 5.X
resources/views/hello/world/index.blade.php
如果文件不在子文件夹中
如果文件在子文件夹中
variable
在 Laravel 5.3 中未定义。 - Volatil3@include('layouts.polygon',[ 'field'=> $value])
。对于新创建的 blade 模板视图要使用,我删除了<?php
然后它就正常工作了。 - CodeToLife