在 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