Laravel 如何在刀片模板中包含子视图?

Laravel 如何在刀片模板中包含子视图?,laravel,blade,templating,Laravel,Blade,Templating,我正在尝试使用laravel建立一个站点,但我确实在文档中没有涵盖的基本内容方面遇到了问题 在本例中,我看到它说我可以使用@include('view.name')将一个视图包含在另一个视图中。什么是view.name?它保存在哪里?我尝试创建一个文件app/views/view.name.blade.php,但没有读取。文件名如何映射到刀片名称?编辑:以下是2014年的首选解决方案。现在,您应该使用@include,如中所述。 在Laravel视图中,点用作文件夹分隔符。 例如,我有这个代码

我正在尝试使用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您可以设置不同的文件夹,请选中此项