Laravel Tinker中Psy Shell报类未找到错误如何解决?
Laravel Tinker 类未找到报错解决方案
报错原因
Laravel 8 及后续版本默认将 User 模型迁移到了App\Models命名空间下,Tinker 运行时默认不会自动加载该模型的全局别名,因此直接调用User类会触发未找到错误。
可行修复方案
- 直接使用完整命名空间调用,同时修正原代码的方法调用顺序,避免误更新全表数据:
\App\Models\User::where('id', 1)->update(["status" => "active"]);
- 先在 Tinker 中导入对应模型,后续即可直接通过类名调用:
首先执行导入命令:
use App\Models\User;
再执行更新操作:
User::where('id', 1)->update(["status" => "active"]);
- 如果你使用的是 Laravel 8 之前的版本,User 模型默认存放于
App命名空间下,将上述命名空间替换为\App\User即可。
注意事项
原代码的方法调用顺序存在严重风险:
update()方法直接调用时会立即执行全表更新,后续拼接的where条件不会生效,会导致所有用户的status字段被覆盖为active,务必保证where条件写在update方法之前。
内容的提问来源于stack exchange,提问作者Code cracker
相关产品推荐
相关产品推荐

