在 Laravel 中将刀片的变量大写

Posted

技术标签:

【中文标题】在 Laravel 中将刀片的变量大写【英文标题】:Capitalized a blade's variable in Laravel 【发布时间】:2016-04-05 11:14:12 【问题描述】:

我以前经常使用 smarty,现在转向 Laravel,但我错过了一些真正有用的东西。 你的模板中的修改是变量

假设我有一个变量分配为$var。 Laravel 有没有办法将其设置为大写?比如:$var|upper

很遗憾,我还没有找到任何关于它的文档。

【问题讨论】:

【参考方案1】:

只有第一个字符:

你可以使用 UCFirst,一个 php 函数

ucfirst(trans('text.blabla'))

对于文档:http://php.net/manual/en/function.ucfirst.php


整个单词

Str::upper($value)

此页面可能还有一些方便的东西:http://cheats.jesse-obrien.ca/

【讨论】:

好的,我希望将整个单词设置为大写,所以第二个答案是好的。谢谢! @Baldráni 我会将两者都保留在帖子中,以防万一有人需要,没问题! :) 记住 Blade 仍然只是 PHP,所以你应该能够在 !! !! 标签中使用任何 PHP 或 Laravel 函数。 这不响应答案,因为答案说大写。大写仅表示第一个字母。所以如果你使用带有变量而不是引用文本的 ucfirst 函数,你会得到一个双点错误。【参考方案2】:

工作双引号:

ucfirst(trans("$var"))

【讨论】:

【参考方案3】:

这里可以使用 PHP Native 函数

 strtoupper($currency)  

 ucfirst($interval) 

测试正常

【讨论】:

为什么你甚至会评论一个 4 年后以相同答案正确回答的问题 :') ? @Baldráni 在刀片中这不起作用( Str::upper($value) ),您可以使用 PHP 核心函数。我认为它可能对某人有用 - 所以发布和支持【参考方案4】:

您还可以在 AppServiceProvider.php 中创建自定义 Blade 指令

例子:

public function boot() 

    Blade::directive('lang_u', function ($s) 
        return "<?php echo ucfirst(trans($s)); ?>";
    );


别忘了在 AppServiceProvider 顶部导入 Blade

use Illuminate\Support\Facades\Blade;

然后在你的刀片模板中像这样使用它:

@lang_u('index.section_h2')

来源: How to capitalize first letter in Laravel Blade

更多信息:

https://laravel.com/docs/5.8/blade#extending-blade

【讨论】:

以上是关于在 Laravel 中将刀片的变量大写的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 刀片中将引导日期格式设置为 yyyy-mm-dd

Vue 中的 Laravel 紧凑型

从包含在laravel中的刀片获得刀片变量

我可以将刀片变量传递给 Laravel 中的 php 变量吗?

在刀片 laravel 中定义变量

laravel 刀片模板变量