我试图将所有的用户代码移动到它自己的包中,以便在多个项目上潜在使用,一切都很好,除了当我尝试登录时,我得到以下错误:
Class 'User' not found
现在,我假设这是因为由于某种原因它没有找到用户模型(我使用Laravel自带的默认模型,但只是移动到
) 'Vendor/VendorName/PackageName/src/models'
我可以看到我可以从app/config/auth.php引用用户模型,但如果我将其更改为我的包命名空间,我看到了相同的错误,但使用不同的路径,也,我不认为这是最好的方法,因为对于每个项目,我需要设置app/config/auth.php模型,这可能被证明是痛苦的,特别是因为我忘记了事情!
我猜你还没有自动加载用户。下面是一个Laravel如何在composer中使用自动加载的例子,User类在安装时放在"app/models"中,它在那里被自动加载。如果你把你的User移到了其他地方,你需要从那里自动加载它。
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models", // original path for User.php
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"your/new/path" // here you add your new path that should autoload
]
}
并且不要忘记在更新您的编写器后运行composer dump-autoload
。json文件!