Reputation: 1165
I have my Helper file located at 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;
}
}
Then in my composer.json
, I autoloaded this Helper file like this:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Helpers/Helper.php"
]
},
Then in one of my master views, I have this:
<body class="{{ Helper::bodyClass() }}">
But I get an error saying:
Class 'Helper' not found
I also did dump autoload so that shouldn't be the issue. Anyone have any clues?
Thanks!
Upvotes: 1
Views: 2920
Reputation: 654
1. You need add namespace for your Helper
class.
<?php
namespace App\Helpers;
class Helper {
...
}
2. If you wanna use your class in view, then you need to add alias for your class.
config/app.php
'aliases' => [
...
'Helper' => 'App\Helpers\Helper'
]
Done!
P.s: You don't need to add your class into composer.json
autoload. It's unneeded.
Upvotes: 6