Blade @inject() 不适用于自定义帮助程序类的 Laravel 5.2


Blade @inject() not working on Laravel 5.2 for a custom Helper class

我在 App''Http''Helpers 目录下创建了一个自定义帮助程序类,我正在使用刀片式@inject()注入注入该类,如下所示:

@inject('Hello', 'App'Http'Helpers'Helper')

而且,我在同一视图中引用Hello,如下所示:

Hello::activity(1, 2, 3)

但是,这将返回以下错误:

Fatal error: Class 'Hello' not found (View: /Users/sumon/Desktop/TimeCop/resources/views/diary/view.blade.php)

我错过了什么吗?

这是我创建的完整类帮助程序类:

<?php
namespace app'Http'Helpers;

class Helper
{
    public static function activity($keyboard, $clicks, $drags)
    {
        if (($keyboard + $clicks + $drags) / 3 >= 100) {
            return 100;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 90) {
            return 90;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 80) {
            return 80;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 70) {
            return 70;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 60) {
            return 60;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 50) {
            return 50;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 40) {
            return 40;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 30) {
            return 30;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 20) {
            return 20;
        } elseif (($keyboard + $clicks + $drags) / 3 >= 10) {
            return 10;
        }
        return 0;
    }
}

根据文档,inject() 指令创建一个要在视图上下文中使用的变量,而不是对类的引用。试试这个:

{{ $Hello->activity(1, 2, 3) }}

PS:也一定要在创建Helper类后运行composer dump