zen*_*zen 1 php laravel laravel-5
我的 Helper 文件位于 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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的 . 中composer.json,我像这样自动加载了这个 Helper 文件:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Helpers/Helper.php"
]
},
Run Code Online (Sandbox Code Playgroud)
然后在我的一个主视图中,我有这个:
<body class="{{ Helper::bodyClass() }}">
但我收到一条错误消息:
Class 'Helper' not found
我也转储了自动加载,所以这不应该是问题。有人有任何线索吗?
谢谢!
小智 5
1.你需要为你的Helper类添加命名空间。
<?php
namespace App\Helpers;
class Helper {
...
}
Run Code Online (Sandbox Code Playgroud)
2.如果你想在视图中使用你的类,那么你需要为你的类添加别名。
config/app.php
'aliases' => [
...
'Helper' => 'App\Helpers\Helper'
]
Run Code Online (Sandbox Code Playgroud)
完毕!
Ps:您不需要将您的类添加到composer.json自动加载中。这是不需要的。