Laravel 模板显示路线中的两个刀片模板

Posted

技术标签:

【中文标题】Laravel 模板显示路线中的两个刀片模板【英文标题】:Laravel template showing two blade templates from route 【发布时间】:2014-11-18 02:56:42 【问题描述】:

我有一个完整的 html 模板,我正在尝试与 laravel 一起使用。 该模板有一个大的图像滑块(应该只在主页上)和一些其他代码,如联系表格、手风琴、推特小部件……我的目标是将这些部分放在单独的刀片模板中,并在需要时调用它们。为此,我有这个文件夹方案。

..
/views
  /emails
  /home
    - slider.blade.php
    - contact-form.blade.php
    - twitterwidget.blade.php
  /layouts
    - master.blade.php

所以,例如master.blade.php 看起来像这样。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
 <div class='header'>
  //header 
  @yield('slider')
 </div>

 <div class='content'>
  //content
   @yield('contact-form')
 </div>

 <div class='footer'>
  //footer
 </div>

</body>
</html>

现在这是一个基本示例,其中yields在标题标签内有一个滑块,这是slider.blade.php

@extends('layouts.master')
@section('details')
<div class='slider'> I am a slider </div>
@stop

但是当我创建一条路线时,我不得不创建一个点对一个模板。如:

Route::get('/', function()
    return   View::make('home/slider');
);

这仅通过拉动滑块来呈现布局。但我也想联系要呈现的表格。

【问题讨论】:

你应该编辑你的问题,但是slider.blade.phpsource @MarcinNabiałek 好的,但这与模板无关。阅读问题的最后一行。 【参考方案1】:

master.blade.php 文件中而不是

@yield('contact-form')

你应该使用:

@include('home.contact-form')

或者您可以编辑您的 slider.blade.php 文件并在末尾添加:

@section('contact-form')
    @include('home.contact-form')
@stop

【讨论】:

我不能做第一个,因为主模板可以根据许多页面共享,不需要显示联系表格。但是我尝试了您的部分选项,但它不起作用。它不包括联系表格。 @CONtext 请在您的问题中也包含contact-form.blade.php 内容 和slider.blade.php完全一样,只是说“我是联系表”(这是为了测试目的) 顺便说一句:您对我的愚蠢路由有什么建议吗,即return View::make('home/slider'); 我可以将slider.blade.php 更改为index.blade.php 但是,这是错误的,因为它只包含一张幻灯片并包含联系表格. 我将创建仅包含内容的文件(不产生或扩展),然后在例如 index.blade.php 使用 include 产生 2 个块,正如我之前为滑块显示的那样

以上是关于Laravel 模板显示路线中的两个刀片模板的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 刀片模板中的图像路径问题

根据当前翻译的 Laravel 路线在刀片中添加“活动”类

Laravel 扩展刀片模板 - $errors 集合中的错误

Laravel 刀片模板,URL::to 中的 foreach 变量?

刀片模板中的意外 endforeach

Laravel 刀片模板扩展了两种不同的布局