Laravel 如何在刀片模板中包含子视图?
我正在尝试使用laravel建立一个站点,但我确实在文档中没有涵盖的基本内容方面遇到了问题Laravel 如何在刀片模板中包含子视图?,laravel,blade,templating,Laravel,Blade,Templating,我正在尝试使用laravel建立一个站点,但我确实在文档中没有涵盖的基本内容方面遇到了问题 在本例中,我看到它说我可以使用@include('view.name')将一个视图包含在另一个视图中。什么是view.name?它保存在哪里?我尝试创建一个文件app/views/view.name.blade.php,但没有读取。文件名如何映射到刀片名称?编辑:以下是2014年的首选解决方案。现在,您应该使用@include,如中所述。 在Laravel视图中,点用作文件夹分隔符。 例如,我有这个代码
在本例中,我看到它说我可以使用
@include('view.name')
将一个视图包含在另一个视图中。什么是view.name?它保存在哪里?我尝试创建一个文件app/views/view.name.blade.php
,但没有读取。文件名如何映射到刀片名称?编辑:以下是2014年的首选解决方案。现在,您应该使用@include
,如中所述。
在Laravel视图中,点用作文件夹分隔符。 例如,我有这个代码
return View::make('auth.details', array('id' => $id));
指向app/views/auth/details.blade.php
<html>
<html stuff>
@yield('content')
</html>
@extends('layout')
@section('content')
<html stuff>
@stop
<html>
@include('parentFolder.childFolder.mypage')
</html>
要在视图中包含视图,请执行以下操作:
文件:layout.blade.php
<html>
<html stuff>
@yield('content')
</html>
@extends('layout')
@section('content')
<html stuff>
@stop
<html>
@include('parentFolder.childFolder.mypage')
</html>
@产量(‘含量’)
文件:hello.blade.php
<html>
<html stuff>
@yield('content')
</html>
@extends('layout')
@section('content')
<html stuff>
@stop
<html>
@include('parentFolder.childFolder.mypage')
</html>
@extends('layout'))
@节(“内容”)
@停止
您可以使用刀片模板引擎:
@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');
@include('some.directory.structure.foo');
将显示以下视图
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php
// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php
另一个例子
@include('hello.world');
@include('some.directory.structure.foo');
将显示以下视图
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
// 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'))
然后,您可以在视图中使用该值,如从Laravel 5.6开始的so
{{$paramName}
,如果您具有这种结构,并且希望在子文件夹中包含另一个刀片文件
|---观点
|-------父文件夹(文件夹)
|----------name.blade.php(刀片文件)
|----------子文件夹(文件夹)
|--------------mypage.blade.php(刀片文件)
name.blade.php
<html>
<html stuff>
@yield('content')
</html>
@extends('layout')
@section('content')
<html stuff>
@stop
<html>
@include('parentFolder.childFolder.mypage')
</html>
@包括('parentFolder.childFolder.mypage')
使用laravel模块时,可以添加名称模块:
@include('cimple::shared.posts_list')
要传递参数:@include('partial',array(“variable”=>“value”))如何从
视图
以外的任何文件夹中包含?您可能必须使用自己的实现覆盖laravel中的一个服务提供商。除非您有很好的理由更改视图文件夹,否则我不想麻烦您:麻烦太多,收获不多。@Sam这不起作用,variable
在Laravel 5中似乎未定义。3@itsazzad您可以设置不同的文件夹,请选中此项