过了一会儿我决定完全重做我在Laravel中的一个模型,但我想保留文件的原始副本以防万一。所以我将它重命名为MyModel(OLD).php,并将其保留在新模型旁边的models文件夹中。
现在我对Laravel有了更好的了解,我意识到这不是一个好主意,但无论如何,一切似乎都能运作好几个月。然后今天,我对我的新模型中的一个函数进行了一次小更新(修改数据库查询),突然Laravel正在尝试加载模型的旧副本。我终于将旧版本从models文件夹中移出并完全放在我的laravel应用程序之外的备份文件夹中,但现在Laravel抛出了错误:
include(pathToMyModels/MyModel (OLD).php): failed to open stream: No such file or directory
参考ClassLoader.php的这一部分
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}
我尝试撤消对模型的修改,更改路由和控制器功能名称,清除laravel的缓存,清除浏览器缓存,使用不同的浏览器,但似乎没有任何工作,除非在调用类之前手动包含模型的php文件它包含。我能做些什么才能让Laravel自动识别我的模型,就像我拥有的其他模型一样?
答案 0 :(得分:24)
尝试清除composer缓存,然后运行composer dump-autoload。
composer clear-cache
composer dump-autoload
答案 1 :(得分:0)
我知道我的laravel在1小时的debuging后使用旧控制器。什么时候浪费
我尝试了接受的答案,但仍然坚持
我删除控制器并重新创建,现在正常工作
答案 2 :(得分:0)
如果您不想运行命令,请尝试执行此命令,我认为这可以解决您的问题。