Laravel:如何从刀片模板访问类常量

时间:2017-11-12 21:41:04

标签: laravel blade

我在模型中使用了很多类常量。当我想在刀片中使用它们时,我首先将它们导入到模板的顶部。

例如:

button26

稍后在模板中我使用它们,如以下示例所示。

@php
    use App\Model\Core\User;
@endphp

有更优雅的方式来解决这个问题吗?将<option value="@php echo User::MY_CONSTANT @endphp">This is an option</option> 直接导入由模板引擎管理的变量范围似乎有点粗糙。我的namespace肯定不喜欢它。

2 个答案:

答案 0 :(得分:1)

我通过使用PHP constant function完成此操作。由于Blade允许您直接调用任何PHP函数,因此您可以通过此函数访问任何公共类常量,而无需将任何内容导入视图。因此,您的示例如下所示:

char *

IDE注意:由于您提到使用PhpStorm,所以此解决方案的唯一缺点是PhpStorm不会检查传递给常量函数的FQCN字符串,因此它不会帮助自动完成键入时保持不变(据我所知,此方法无法解决),并且无法按ctrl键单击以跳到该类。第二个问题得到了缓解,因为您可以在FQCN中快速突出显示“用户”,然后单击ctrl-n(其“搜索班级”功能的默认映射),并且所产生的班级搜索对话框中将预加载突出显示的内容文字

答案 1 :(得分:0)

https://stackoverflow.com/a/47271411/1925358处有一个有效答案的类似问题,该问题描述了将常量类声明为别名,然后可以在Blade中引用常量。