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

在laravel中填写每页布局的数据,laravel,blade,Laravel,Blade,我们有一个网站,有一个布局,你可以改变:标题页,面包屑,简短的描述,标题上的图标和其他元素,是每个页面的具体内容 我们通过以下方式做到这一点: 在每个控制器中定义该信息(因为它基于我们显示的页面/模型是动态的) 发送到视图 在视图中,我们使用第节设置了在布局刀片中用@yield声明的片段 看起来有点冗长。我们应该采用什么模式 layout.blade.php index.blade.php 假设您必须为每个页面定义6-7个这样的代码片段。我认为这对于控制器来说太冗长了,因为控制器只是将请求传

我们有一个网站,有一个布局,你可以改变:标题页,面包屑,简短的描述,标题上的图标和其他元素,是每个页面的具体内容

我们通过以下方式做到这一点:

  • 在每个控制器中定义该信息(因为它基于我们显示的页面/模型是动态的)
  • 发送到视图
  • 在视图中,我们使用第节设置了在布局刀片中用@yield声明的片段
看起来有点冗长。我们应该采用什么模式

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

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

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


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

请把你的代码放在解释的旁边,因为它会更容易看到你认为是冗长的。而且,这不是一个具体的问题,但听起来像是设计原则上的建议,这不是正确的问题。@ TimLeWIS:我增加了更多的信息。这可能是一个设计原则,但我的问题是,除了来自控制器的数据外,我不知道如何访问其他数据。我想这是我的问题。除了来自控制器之外?我想我不明白。。。您似乎在使用控制器定义每个页面的
@section()
,但这似乎不对。我在应用程序设计中使用了类似的方法,但我有许多扩展了
layout.blade.php
,每个文件都有自己的
@节(“title”)
@节(“content”)
,等等。因此,我将使用
@节(“title”),而不是
@节(“title”),$config[“title”]
这是我在实际
Index.blade.php
上的索引标题@stop
。另外,请注意,
@endsection
在Laravel 5.0+@Timleis中在技术上不受欢迎:我明白你的意思。所以,如果您需要生成动态(基于一些规则):“这是我的索引标题”,您在哪里定义它?在控制器中?在视图中?我不知道extends的第二个参数…它会缩短一些代码,比如:@extends(“layout,$layoutSnippets”);
function index(){
$config['title']='Title tag';
$config['h1]='H1 Title tag';

return view('index',compact('config'));
}
@extends('layout')
@section('html.title',$config['title']);
@section('body.title',$config['h1']);

@section('body.content')
this is tje page content
@endsection
@extends("templates.core",[
    "title"=>"Cancel My Account",
    "description"=>"We're sad that you're leaving"
])


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