我正在尝试使用laravel建立一个网站,但我真的遇到了文档根本没有涉及的基本内容的问题。
在这种情况下,我看到它说我可以使用@include('view.name')
将一个视图包含在另一个视图中。什么是view.name?它在哪里保存?我尝试创建文件app/views/view.name.blade.php
,但没有读取。文件名如何映射到刀片名称?
答案 0 :(得分:165)
您可以使用刀片模板引擎:
@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
所以基本上点符号定义了视图所在的目录层次结构,后面是视图名称,相对于laravel 4.x的app/views
文件夹或laravel 5.x中的resources/views
文件夹
其他强>
如果您想传递参数:@include('view.name', array('paramName' => 'value'))
然后,您可以使用视图中的值,如<p>{{$paramName}}</p>
答案 1 :(得分:25)
编辑:以下是2014年的首选解决方案。现在您应该使用@include
中提到的return View::make('auth.details', array('id' => $id));
。
在Laravel视图中,点用作文件夹分隔符。 例如,我有这个代码
<html>
<html stuff>
@yield('content')
</html>
指向app / views / auth / details.blade.php
要在视图中包含视图,您可以这样做:
file:layout.blade.php
@extends('layout')
@section('content')
<html stuff>
@stop
file:hello.blade.php
{{1}}
答案 2 :(得分:3)
从Laravel 5.6开始,如果你有这种结构,并且想要在子文件夹中包含另一个刀片文件,
| --- views
| ------- parentFolder(文件夹)
| ---------- name.blade.php(刀片文件)
| ---------- childFolder(文件夹)
| -------------- mypage.blade.php(刀片文件)
name.blade.php
<html>
@include('parentFolder.childFolder.mypage')
</html>
答案 3 :(得分:2)
使用laravel模块时,可以添加名称的模块:
@include('cimple::shared.posts_list')