在laravel中填写每页上的布局数据

时间:2015-09-15 13:32:15

标签: laravel blade

我们的网站有一个可以更改的布局:标题页,面包屑,简短说明,标题上的图标以及每个页面特定的其他元素。

我们这样做:

  • 在每个控制器中定义信息(因为它是基于我们显示的页面/模型的动态)
  • 发送到视图
  • 在视图中我们使用布局刀片中使用@yield声明的那些片段设置了部分。

看起来有点冗长。我们应该采用哪种模式?

layout.blade.php

<html>
<head>
<title>@yield('html.title')</title>
</head>
<body>
<h1>@yield('body.title')</h1>
<article>
 @yield('body.content')
</article>
</body>

Controller.php这样

function index(){
$config['title']='Title tag';
$config['h1]='H1 Title tag';

return view('index',compact('config'));
}

index.blade.php

@extends('layout')
@section('html.title',$config['title']);
@section('body.title',$config['h1']);

@section('body.content')
this is tje page content
@endsection

认为你必须为每个页面定义这样的6-7个片段。我认为这对于控制器来说太冗长了,因为控制器只是将请求传递给必要的服务以便返回正确的视图。

1 个答案:

答案 0 :(得分:1)

我倾向于尝试将这些东西放在视图中 - 在我看来,页面的标题更多地是演示文稿的一部分,而不是部分数据。例如,我有一个cancel.blade.php文件,如下所示:

@extends("templates.core",[
    "title"=>"Cancel My Account",
    "description"=>"We're sad that you're leaving"
])


@section('content')
   ... stuff here ...
@stop