无法从视图访问Laravel帮助程序类

时间:2015-12-30 02:21:03

标签: php laravel laravel-5

我的帮助文件位于app/Helpers/Helper.php

class Helper {

    // Add body class
    public static function bodyClass() {
        $body_classes = array();
        $class = "";

        foreach ( \Request::segments() as $segment ) {
            if ( is_numeric( $segment ) || empty( $segment ) ) {
            continue;
            }

            $class .= ! empty( $class ) ? "-" . $segment : $segment;
            array_push( $body_classes, $class );
        }
        return ! empty( $body_classes ) ? implode( ' ', $body_classes ) : NULL;
    }
}

然后在我的composer.json中,我自动加载了这个Helper文件:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/Helper.php"
    ]
},

然后在我的一个主要观点中,我有这个:

<body class="{{ Helper::bodyClass() }}">

但是我收到一个错误说:

Class 'Helper' not found

我也做了转储自动加载,所以不应该是问题。有人有任何线索吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

1。您需要为Helper类添加命名空间。

<?php

namespace App\Helpers;

class Helper {
    ...
}

2。如果您想在视图中使用您的课程,那么您需要为您的课程添加别名。

config/app.php

'aliases' => [
    ...

    'Helper' => 'App\Helpers\Helper'
]

完成!

P.s:您不需要将班级添加到composer.json自动加载中。它不需要。