Laravel blade 模板特定代码
Laravel blade template specific code
目前我们在几个项目上使用 Laravel 框架,但我们保留 运行 一个我不喜欢的问题是以下问题:
假设您有一个主页和一个内容页面
HomepageController 具有所有主页特定的 php 代码
ContentpageController 具有所有内容特定 php 代码
我们有一个 app.blade.php
@yield('page')
HomepageController 调用包含
的视图 homepage.blade.php
@extends('app')
@section('page')
Some HTML part
@include('parts.top_5')
@endsection
ContentController 调用包含
的视图 content.blade.php
@extends('app')
@section('page')
Some different HTML part
@include('parts.top_5')
@endsection
这里可以看到两个页面都包含parts。top_5,top 5需要一些特定的变量来输出top5。现在的问题是我们目前正在两个控制器或分组中间件中复制前 5 个变量的代码,但是是否有更好的解决方案来在包含该部分时生成一些 blade 特定变量?所以有点像 运行 加载 blade 模板的控制器功能?
我一直在网上搜索,但似乎找不到有相同问题的人。希望有人能帮助我解决这个令人费解的问题!
您可以将此绑定添加到 AppServiceProvider
(或您想要的任何自定义服务提供商)
像这样:
public function boot()
{
$view->composer('parts.top_5', function($view) {
$view->with('any_data' => 'You want');
})
}
这样任何时候 Laravel 将组成 parts.top_5
视图将触发此关闭方法。
目前我们在几个项目上使用 Laravel 框架,但我们保留 运行 一个我不喜欢的问题是以下问题:
假设您有一个主页和一个内容页面
HomepageController 具有所有主页特定的 php 代码 ContentpageController 具有所有内容特定 php 代码
我们有一个 app.blade.php
@yield('page')
HomepageController 调用包含
的视图 homepage.blade.php@extends('app')
@section('page')
Some HTML part
@include('parts.top_5')
@endsection
ContentController 调用包含
的视图 content.blade.php@extends('app')
@section('page')
Some different HTML part
@include('parts.top_5')
@endsection
这里可以看到两个页面都包含parts。top_5,top 5需要一些特定的变量来输出top5。现在的问题是我们目前正在两个控制器或分组中间件中复制前 5 个变量的代码,但是是否有更好的解决方案来在包含该部分时生成一些 blade 特定变量?所以有点像 运行 加载 blade 模板的控制器功能?
我一直在网上搜索,但似乎找不到有相同问题的人。希望有人能帮助我解决这个令人费解的问题!
您可以将此绑定添加到 AppServiceProvider
(或您想要的任何自定义服务提供商)
像这样:
public function boot()
{
$view->composer('parts.top_5', function($view) {
$view->with('any_data' => 'You want');
})
}
这样任何时候 Laravel 将组成 parts.top_5
视图将触发此关闭方法。