【问题标题】:Laravel template showing two blade templates from routeLaravel 模板显示路线中的两个刀片模板
【发布时间】: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 好的,但这与模板无关。阅读问题的最后一行。

标签: php templates laravel blade laravel-routing


【解决方案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 个块,正如我之前为滑块显示的那样
猜你喜欢
  • 1970-01-01
  • 2014-11-07
  • 2019-01-15
  • 1970-01-01
  • 2013-04-29
  • 2014-09-14
  • 2018-03-14
  • 2018-09-24
相关资源
最近更新 更多