【问题标题】:Concatinating Views in Laravel在 Laravel 中连接视图
【发布时间】:2016-03-22 00:06:14
【问题描述】:

我正在学习 Laravel,我想知道如何将多个视图连接在一起。

我查看了laravel.com 上的文档,但找不到告诉我如何连接视图的部分。

我已经解决了这样的问题(在我的控制器中):

public function showPage() {
    return View::make('header') . View::make('content') . View::make('footer');
}

但肯定有更好/正确的方法......我将不胜感激。

【问题讨论】:

  • 一个视图必须被渲染,所以 Laravel 不能以你想要的方式渲染视图。

标签: php laravel view blade


【解决方案1】:

你可以加载做这样的事情

public function showPage() {
    return View::make('page');
}

在你的page.blade.php:

@include('header')
@include('content')
@include('footer')

但实际上最好有这种结构。

layout.blade.php:

@include('header')

@yield('content')

@include('footer')

page.blade.php:

@extends('layout')

@section('content')
     HTML of content here...
@stop

【讨论】:

  • 谢谢你的建议,肯定比我的方法好。但这似乎仍然是耦合...没有更好的方法,还是我问错了问题?连接视图是以解耦方式显示组件的最佳方式吗?
  • 耦合是什么意思?
  • @ArturGrigio,首先,laravel 将视图视为对象-它们具有继承性,可以扩展,可以包含。 laravel view 的工作流程是将所有相同的代码放在父组件中,而子组件修改(替换或添加)父组件。 ps 如果您确实想让 included 元素的某些部分可修改,只需将它们作为参数传递 - 您始终可以 @include($someView)
  • 您还可以将变量作为关联数组作为第二个参数传递给子视图。
  • @Tezla 谢谢你的澄清:)
猜你喜欢
  • 1970-01-01
  • 2021-01-14
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 2011-10-10
  • 2013-01-11
  • 1970-01-01
相关资源
最近更新 更多