我从Codeigniter切换到Laravel。在CI中,它易于用户使用外部库或类,只需将其放在application/libraries
文件夹中,然后通过以下方式从控制器加载:
$this->load->library('libraryName')
现在,我想在Laravel做同样的事情。我用过这个场景:
app
的{{1}}文件夹中创建一个文件夹。更改libraries
(位于根目录中),如下所示:
composer.json
从CMD运行命令"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries" // this was added
]
},
。
我的班级看起来像这样:
composer dump-autoload
存储在名为class Messages{
function errorMessage(){//....}
function successMessage(){//....}
}
的文件中的类,该文件位于Messages.php
文件夹中。
我仍然有同样的错误:
课程'消息'找不到
问题是什么,解决方案是什么?
答案 0 :(得分:4)
你应该看到这个:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
));
将您的班级文件夹添加到此阵列
app_path().'/your-folder-name'
可以在此处找到更多信息:Where do I put Laravel 4 helper functions that can display flash messages?
答案 1 :(得分:0)
使用自动加载类检查文件/vendor/composer/autoload_classmap.php 你的班级应该在那里。 如果是 - 请检查您的请求是否实际使用了作曲家自动加载?