sineld / bladeset

一个非常简单的blade模板扩展,允许在模板中设置变量。

v5.6.0 2018-03-07 07:30 UTC

This package is auto-updated.

Last update: 2024-09-29 05:01:12 UTC


README

此包深受alexdover/blade-set启发,在这次讨论之后。

一个非常简单的blade模板扩展,允许在模板中设置变量。

此版本适用于Laravel v. 5-6-7-8-9,应与Laravel的未来版本兼容,如果不兼容,请给我发邮件。

使用示例

@set('myVariable', $existing_variable)

// or

@set("myVariable", "Hello, World!")

然后您可以在blade模板中使用变量 $myVariable

{{ $myVariable }}

您可能会选择从模板中获取一些模型,例如

@set('myModelList', MyModel::where('something', '=', 1)->paginate(10))

可用操作符 [set, var, assign]

@set('username', 'sineld')

@var("username", "sineld")

@assign('username', 'sineld')

提示:您可以在配置文件中指定自己的操作符!

为什么?

比较

<?php $myModelList = MyModel::where('something', '=', 1)->paginate(10); ?>

@set('myModelList', MyModel::where('something', '=', 1)->paginate(10))

我觉得在blade模板的上下文中使用@set是一个更优雅的解决方案。

另一个原因(来自GitHub问题页面

使用此语法在模板内部设置和跟踪变量的一个示例是处理包含每周日期的项目列表,您希望为每个周组设置周标题。

@set('week', 0);

@foreach ($things as $thing)
  @if ($week != $thing->week)
    WEEK {{ $thing->week }}
    @set('week', $thing->week)
  @endif

  Title: {{ $thing->title }}
@endforeach

安装

在您的包根目录的终端中运行此命令

composer require sineld/bladeset

在您的 composer.json 中要求此包

"sineld/bladeset": "8.0"

更新composer。这将下载包。

composer update

如果您的项目Laravel版本低于5.5,请在 config/app.php 中的 providers 数组中添加 BladeSetServiceProvider。如果您的Laravel版本高于或等于5.5,则不需要在 config/app.php 文件中添加以下行,因为包自动发现可用。

Sineld\BladeSet\BladeSetServiceProvider::class,

(可选)发布包配置。

php artisan vendor:publish

然后根据需要编辑 app/config/bladeset.php

完成!

许可证

您可以在MIT许可证下使用此包。

反馈

如果您有任何问题、功能请求或建设性的批评,请与我联系。

Twitter - @sineld